2013-02-16 30 views
0

我所試圖做的事:DML查詢執行到SSCE

執行DML語句到使用Datagridview和命令按鈕數據庫(SSCE)。

問題:

我收到完全相同的錯誤,因爲這帖子:SQL [Error]: There was an error parsing the query. [ Token line number = 1,Token line offset = 44,Token in error = - ]

基於這些答案和其他人在網絡上可用,我已經驗證的查詢字符串,但不能解決這個問題。還有一個方面我有疑問。

private void button2_Click(object sender, EventArgs e) 
     { 
      using (SqlCeConnection CONN = new SqlCeConnection("Data 
              Source=LocalDBSSCompactEdition.sdf;")) 
      { 
       SqlCeCommand comm = new SqlCeCommand(); 
       comm.Connection = CONN; 
       CONN.Open(); 
       int i = dataGridView2.Rows.Count-1; 

        String queryString = @"INSERT INTO tblEmployee VALUES (" 
        + dataGridView2.Rows[i].Cells["E_ID"].Value + ", " 
        + dataGridView2.Rows[i].Cells["FirstName"].Value + ", " 
        + dataGridView2.Rows[i].Cells["LastName"].Value + ", " 
        + dataGridView2.Rows[i].Cells["DeptID"].Value + ");"; 
        comm.CommandText = queryString; 
        comm.ExecuteNonQuery(); 

      } 
     } 

1)E_ID列是IDENTITY(自動遞增)。然而,我得到一個錯誤,說我必須在DataGridview中包含所有列以匹配數據庫表。這可能是我得到的問題,或者它可能是我的語法?

2)我想使用按鈕單擊事件從Datagridview向數據庫表中插入新的行/更新/刪除的行。這是否是有效的方式?

讚賞正確方向的一些見解。

回答

0

我設法解決它。我不相信回答我自己的問題。只是添加了答案,希望將來有人蔘考。

1)i變量指的是一個空行中的datagridview ...因此要被插入的值零和這些列被指定NOT NULL ...

2)第一規則是按照通常的INSERT聲明當ID列是自動增量。所以我指定了我想要插入數據的列。

3)我輸入的數據沒有被引用爲String。固定。

private void button2_Click(object sender, EventArgs e) 
     { 
      using (SqlCeConnection CONN = new SqlCeConnection("Data Source=LocalDBSSCompactEdition.sdf;")) 
      { 
       CONN.Open(); 
       SqlCeCommand comm = CONN.CreateCommand();     
       int i = dataGridView2.Rows.Count-1; 

        String queryString = @"INSERT INTO tblEmployee (FirstName, LastName, DeptID) VALUES ('"      
        + dataGridView2.Rows[5].Cells["FirstName"].Value + "','" 
        + dataGridView2.Rows[5].Cells["LastName"].Value + "'," 
        + dataGridView2.Rows[5].Cells["DeptID"].Value + ");"; 
        comm.CommandText = queryString; 
        comm.ExecuteNonQuery(); 
        CONN.Close();  
      } 
     }