我是SQL新手。
如屏幕截图所示,如何根据列名获取任何特定的单元格值?
此查询可以根据查询中的列名称获取特定的单元格值(列名称SizeM在查询中是固定的):
String s = Item1;
SqlCommand cm = new SqlCommand("SELECT SizeM FROM Table1 where Items = '" +s+ "' ");
结果是:JH
但我想控制查询中的列名,例如我想在查询中放置一个带有列名的变量,但如果我这样做,则会给出错误,指出此变量不是列名,这是代码:
var C = SizeM;
String s = Item1;
SqlCommand cm = new SqlCommand("SELECT C FROM Table1 where Items = '" + s+ "' ");
任何人都知道如何根据具有列名的变量控制列名,以便根据此变量获取任何单元格值。谢谢
答案 0 :(得分:2)
我想你想要这个:
String s = Item1;
String Column = "SizeL";
SqlCommand cm = new SqlCommand("SELECT " + Column + " FROM Table1 where Items = '" +s+ "' ");
答案 1 :(得分:1)
你可以这样做:
String s = Item1;
string column_name = "SizeS";
SqlCommand cm = new SqlCommand("SELECT " + column_name + " FROM Table1 where Items = '" +s+ "' ");
答案 2 :(得分:1)
您可以在SQL查询字符串中使用字符串连接。在这里我采取变量列 存储Columns值并连接到SQL Query。
string Columns = "SizeL, SizeM"; // Dynamic Columns Goes Here
String s = Item1;
SqlCommand cm = new SqlCommand("SELECT "+ Columns +" FROM Table1 where Items = '" +s+ "' ");
或者甚至可以使用列数组
string ParaCol = "2,3";
string[] iCol = ParaCol.split(',');
string[] Table1Colms = {"Items", "Sizes", "SizeM","SizeL"};
string Columns = "";
for(int i =0 ; i < Table1Colms.Count() ; i++)
{
if(iCol.contains(i.ToString()))
{
Columns = Columns != ""? Columns + ", " + Table1Colms[i] : Columns + Table1Colms[i];
}
}
SqlCommand cm = new SqlCommand("SELECT "+ Columns +" FROM Table1 where Items = '" +s+ "' ");