我想要实现的目标是:
string[] QueryString = new string[]{
"Column1",
"Column2"
};
创建:
SELECT Column1,Column2
FROM SomeTable
我知道我可以做concat
,但这不是一个非常干净的方法。
答案 0 :(得分:2)
我知道我可以做一个concat,但这不是一个非常干净的方法。
对我来说似乎很干净:
string sql = "SELECT " + string.Join(", ", QueryString) + " FROM SomeTable";
虽然你很容易受到SQL注入攻击:
string[] QueryString = new string[]{
" * FROM SomeTable; DROP TABLE SomeTable; --"
};
只有在完全控制可以使用的列名(例如,从表元数据中填充)时才这样做。
答案 1 :(得分:0)
Declare @qtext varchar(max) = 'select '+column1+ ' , '+column2+ ' from sometable '
Exec(@qtext)
答案 2 :(得分:0)
您可以使用String.Format
http://msdn.microsoft.com/en-us/library/system.string.format(v=vs.110).aspx
String query =
String.Format("SELECT {0}, {1} FROM SomeTable", QueryString[0], QueryString[1]);
尽管像构建SQL查询一样,但要注意sql注入攻击。