对未知列名使用参数? [英] using parameters for unknown column name s?
本文介绍了对未知列名使用参数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否可以在我的代码中编写与下面的查询类似的查询,其中所设置的列可能会根据前端用户的选择而有所不同?在这种情况下,从界面中选择 @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屋!
查看全文