2014-09-05 49 views
-2

我試圖通過執行插入查詢在SQL表中插入數據。使用控件的列名在sqlserver中插入數據。 c#

問題是我需要從選定的gridview行中的單元格獲取列名稱。

這裏的片段:

SqlCommand cmd30 = new SqlCommand("insert into mytable ('"+GridView7.SelectedRow.Cells[0].Text+"' , r_id) values ('"+ GridView7.SelectedRow.Cells[1].Text +"', '"+TextBox1.Text+"')",con30); 
cmd30.ExecuteNonQuery(); 

R_ID是不是主鍵。

錯誤是:

Incorrect syntax near 'r_id'.

任何幫助將不勝感激。 謝謝。

+1

使用'的SqlCommand Parameters'來解決這個問題。 – Hassan 2014-09-05 05:57:24

+3

COnsidered - 啊 - 看你生成的SQL,然後修復該錯誤? (a)讀取錯誤而不是複製/粘貼錯誤(b)查看您生成的sql時,這是一個明顯的錯誤。調試器可以提供哪些幫助。 – TomTom 2014-09-05 06:04:43

+0

@EdiG。這是參數不工作的情況之一,因爲參數不能包含對象名稱。 – TomTom 2014-09-05 06:05:14

回答

2
  1. 使用SqlCommand Parameters
  2. 另外,還要確保你從GridView7.SelectedRow.Cells[0].Text;

代碼得到有效的列名:

string col1 = GridView7.SelectedRow.Cells[0].Text; 
string sql = "INSERT into mytable (" + col1 + ", r_id) Values (@" + col1 + ", @rid)"; 
SqlCommand cmd30 = new SqlCommand(sql, con30); 
cmd30.Parameters.AddWithValue("@" + col1, GridView7.SelectedRow.Cells[1].Text); 
cmd30.Parameters.AddWithValue("@rid", TextBox1.Text);  
cmd30.ExecuteNonQuery(); 
+0

嗨,感謝您的回覆。該代碼段顯示錯誤 - 「cmd30.Parameters.AddWithValue(@r_id,TextBox1.Text);」在@r_id – user3527503 2014-09-05 09:49:07

+0

我已經更新了答案,但是能否告訴你什麼錯誤? – Hassan 2014-09-05 11:30:00

+0

它在最後一行的@rid下面顯示一條紅線。錯誤是:「名稱rid在當前上下文中不存在」。 – user3527503 2014-09-05 16:24:24

相關問題