作者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
→ chancewen:AddWithValue("@欄位") 07/16 19:34
→ ashram:這樣子還是不行 07/18 12:07
→ sryang:TableName 不可使用參數 07/31 11:50