2016-01-28 59 views
0

我試圖在cshtml文件中運行INSERT查詢,但我在將變量傳遞到字段時遇到問題。如果我輸入一個靜態數字,但是當我包含@ 0來傳遞我的變量時,查詢起作用,我得到錯誤:將變量傳遞到表字段/記錄(SQL/Webmatrix)

「此位置不允許使用參數。確保'@'符號位於有效位置或者這個SQL語句中的參數是有效的。「

db.Execute("INSERT INTO table1(field1, field2, field3, field4) 
      SELECT @0, field2, field3, field4 
      FROM table2", myVariable); 

該字段和變量都是int。

有人可以告訴我如何插入我的變量?

非常感謝

回答

0

你應該能夠做到這一點:

db.Execute("INSERT INTO table1(field1, field2, field3, field4) 
      SELECT " + myVariable + ", field2, field3, field4 
      FROM table2"); 

然而,繞過始終使用參數化查詢的標準是一個壞主意,因爲它可能讓你到SQL注入攻擊。

你也可以使用:

db.Execute("INSERT INTO table1(field1, field2, field3, field4) 
      SELECT * FROM table2"); 

這將返回所有列,然後您可以稍後選擇哪些顯示/隱藏。假設你的桌子不是非常大,這可以很好地工作,沒有任何性能問題。