对未知列名使用参数? [英] using parameters for unknown column name s?

查看:108
本文介绍了对未知列名使用参数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以在我的代码中编写与下面的查询类似的查询,其中所设置的列可能会根据前端用户的选择而有所不同?在这种情况下,从界面中选择 @Column @Value

Is it possible to write a query similar to the one in my code below where the column that is set can vary depending on user selection from the front end? In this case @Column and @Value are selected from an interface

  SqlConnection connect = new SqlConnection(ConfigurationManager.ConnectionStrings
["connectToEnterpriseAssignmentDB"].ToString());
                SqlCommand cmd1 = new SqlCommand();

                string currency = lstCurrency.SelectedItem.Value.ToString();
                string columnCurr = lstColumnCurr.SelectedItem.Value.ToString();
                double value = double.Parse(txtValue.Text);
                currency= currency.Trim();
                columnCurr=columnCurr.Trim();         

                cmd1.CommandText = "UPDATE CurrencyTbl SET @Column = '@Value' WHERE CurrencyName = '@Currency'";

                cmd1.Parameters.Add("@Currency", SqlDbType.Char).Value = currency;
                cmd1.Parameters.Add("@Column", SqlDbType.Char).Value = columnCurr;
                cmd1.Parameters.Add("@Value", SqlDbType.Float).Value = value;

                cmd1.Connection = connect;
                connect.Open();
                cmd1.ExecuteNonQuery();

                connect.Close();


推荐答案

您不能将列名用作变量,而是可以直接从C#使用它,如下所示:

You cannot use column name as variable, instead you can use that from C# directly as below:

SqlConnection connect = new SqlConnection(ConfigurationManager.ConnectionStrings
["connectToEnterpriseAssignmentDB"].ToString());
                SqlCommand cmd1 = new SqlCommand();

                string currency = lstCurrency.SelectedItem.Value.ToString();
                string columnCurr = lstColumnCurr.SelectedItem.Value.ToString();
                double value = double.Parse(txtValue.Text);
                currency= currency.Trim();
                columnCurr=columnCurr.Trim();         

                cmd1.CommandText = "UPDATE CurrencyTbl SET "+columnCurr + " = '@Value' WHERE CurrencyName = '@Currency'";

                cmd1.Parameters.Add("@Currency", SqlDbType.Char).Value = currency;
                //cmd1.Parameters.Add("@Column", SqlDbType.Char).Value = columnCurr;
                cmd1.Parameters.Add("@Value", SqlDbType.Float).Value = value;

                cmd1.Connection = connect;
                connect.Open();
                cmd1.ExecuteNonQuery();

                connect.Close();

这篇关于对未知列名使用参数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆