[問題] 參數化query mssql 2008

看板C_Sharp作者 (アシュラム)時間16年前 (2009/07/16 15:36), 編輯推噓1(103)
留言4則, 4人參與, 最新討論串1/1
資料庫使用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

07/16 19:34, , 1F
AddWithValue("@欄位")
07/16 19:34, 1F

07/18 12:07, , 2F
這樣子還是不行
07/18 12:07, 2F

07/31 11:50, , 3F
TableName 不可使用參數
07/31 11:50, 3F
文章代碼(AID): #1ANjYFKg (C_Sharp)