看板 C_Sharp 關於我們 聯絡資訊
資料庫使用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