作者ashram (アシュラム)
看板C_Sharp
标题[问题] 参数化query mssql 2008
时间Thu Jul 16 15:36:44 2009
资料库使用MS SQL 2008
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "....";
conn.Open();
SqlCommand sqlcmd = new SqlCommand();
sqlcmd.CommandText = "SELECT @Column1, @Column2 FROM @TableName WHERE
language = @Language";
sqlcmd.Parameters.AddWithValue("Column1", Column1);
sqlcmd.Parameters.AddWithValue("Column2", Column2);
sqlcmd.Parameters.AddWithValue("TableName", TableName);
sqlcmd.Parameters.AddWithValue("Language", Language);
sqlcmd.Connection = conn;
SqlDataAdapter sda = new SqlDataAdapter(sqlcmd);
DataSet ds = new DataSet();
sda.Fill(ds);
执行到这里的时候,会跳出例外
{"Must declare the table variable \"@TableName\"."}
可是TableName我确实有传值进去,传入值也无误
如果不要用@TableName,而直接带table name进去就可以
或是用字串相接的方式
"SELECT @Column1, @Column2 FROM " + TableName + " WHERE language = @Language";
这样子也可以
请问是错在哪里?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.250.142.207
1F:→ chancewen:AddWithValue("@栏位") 07/16 19:34
2F:→ ashram:这样子还是不行 07/18 12:07
3F:→ sryang:TableName 不可使用参数 07/31 11:50