2016-04-23 34 views
0

我正在使用vs 2013,我正在使用基於Windows的應用程序的服務基礎數據庫我正在創建員工管理應用程序,同時插入數據它顯示我記錄插入但數據正在數據庫中更新,任何人都可以幫我...數據不在數據庫中插入c#winform

void metroButton1_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      for (int i = 0; i < dataGridView1.Rows.Count - 1; i++) 
      { 
       con = new SqlConnection(cs.DBcon); 

       using (SqlCommand cmd = new SqlCommand("INSERT INTO tbl_employee VALUES(@Designation, @Date, @Employee_name,@Leave,@L_Reason,@Performance,@Payment,@Petrol,@Grand_Total)", con)) 
       { 
        cmd.Parameters.AddWithValue("@Designation", dataGridView1.Rows[i].Cells[0].Value); 
        cmd.Parameters.AddWithValue("@Date", dataGridView1.Rows[i].Cells[1].Value); 
        cmd.Parameters.AddWithValue("@Employee_name", dataGridView1.Rows[i].Cells[2].Value); 
        cmd.Parameters.AddWithValue("@Leave", dataGridView1.Rows[i].Cells[3].Value); 
        cmd.Parameters.AddWithValue("@L_Reason", dataGridView1.Rows[i].Cells[4].Value); 
        cmd.Parameters.AddWithValue("@Performance", dataGridView1.Rows[i].Cells[5].Value); 
        cmd.Parameters.AddWithValue("@Payment", dataGridView1.Rows[i].Cells[6].Value); 
        cmd.Parameters.AddWithValue("@Petrol", dataGridView1.Rows[i].Cells[7].Value); 
        cmd.Parameters.AddWithValue("@Grand_Total", dataGridView1.Rows[i].Cells[8].Value); 

        con.Open(); 
        cmd.ExecuteNonQuery(); 
        con.Close(); 
       } 


      } 
      MessageBox.Show("Records inserted."); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 
+0

什麼是錯誤訊息? – CodeNotFound

+0

其實你有什麼錯誤? – Jamil

+0

您正在嘗試創建沒有vaild SQL連接的SQLCommand。在創建命令實例之前打開連接。 – robot9706

回答

0

我建議爲ExecuteNonQuery後的ExecuteNonQuery和con.Commit()之前加入con.BeginTransaction()。

0

你應該打開連接你之前做的命令情況下,像這樣:

void metroButton1_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     con = new SqlConnection(cs.DBcon); 

     con.Open(); //Open the connection 

     for (int i = 0; i < dataGridView1.Rows.Count - 1; i++) 
     { 
      using (SqlCommand cmd = new SqlCommand("INSERT INTO tbl_employee VALUES(@Designation, @Date, @Employee_name,@Leave,@L_Reason,@Performance,@Payment,@Petrol,@Grand_Total)", con)) //Now create the command 
      { 
       cmd.Parameters.AddWithValue("@Designation", dataGridView1.Rows[i].Cells[0].Value); 
       cmd.Parameters.AddWithValue("@Date", dataGridView1.Rows[i].Cells[1].Value); 
       cmd.Parameters.AddWithValue("@Employee_name", dataGridView1.Rows[i].Cells[2].Value); 
       cmd.Parameters.AddWithValue("@Leave", dataGridView1.Rows[i].Cells[3].Value); 
       cmd.Parameters.AddWithValue("@L_Reason", dataGridView1.Rows[i].Cells[4].Value); 
       cmd.Parameters.AddWithValue("@Performance", dataGridView1.Rows[i].Cells[5].Value); 
       cmd.Parameters.AddWithValue("@Payment", dataGridView1.Rows[i].Cells[6].Value); 
       cmd.Parameters.AddWithValue("@Petrol", dataGridView1.Rows[i].Cells[7].Value); 
       cmd.Parameters.AddWithValue("@Grand_Total", dataGridView1.Rows[i].Cells[8].Value); 

       cmd.ExecuteNonQuery(); 
      } 
     } 

     con.Close(); 
     MessageBox.Show("Records inserted."); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
} 
+0

同樣的問題發生的數據插入消息顯示,但數據不更新我使用所有建議,但同樣的問題發生 –

+0

你確定你想要「dataGridView1.Rows.Count - 1」,因爲這意味着你不會插入一行進入數據庫。所以如果你有1行,那麼你不會在數據庫中插入任何東西。嘗試「for(int i = 0; i robot9706

0

內線進行一切如下

void metroButton1_Click(object sender, EventArgs e) 
     { 
      try 
      { 
       for (int i = 0; i < dataGridView1.Rows.Count - 1; i++) 
       { 
        using(SqlConnection connection = new SqlConnection(cs.DBcon)) 
        { 
         connection.Open(); 
         cmd.Parameters.AddWithValue("@Designation", dataGridView1.Rows[i].Cells[0].Value); 
         cmd.Parameters.AddWithValue("@Date", dataGridView1.Rows[i].Cells[1].Value); 
         cmd.Parameters.AddWithValue("@Employee_name", dataGridView1.Rows[i].Cells[2].Value); 
         cmd.Parameters.AddWithValue("@Leave", dataGridView1.Rows[i].Cells[3].Value); 
         cmd.Parameters.AddWithValue("@L_Reason", dataGridView1.Rows[i].Cells[4].Value); 
         cmd.Parameters.AddWithValue("@Performance", dataGridView1.Rows[i].Cells[5].Value); 
         cmd.Parameters.AddWithValue("@Payment", dataGridView1.Rows[i].Cells[6].Value); 
         cmd.Parameters.AddWithValue("@Petrol", dataGridView1.Rows[i].Cells[7].Value); 
         cmd.Parameters.AddWithValue("@Grand_Total", dataGridView1.Rows[i].Cells[8].Value); 
         cmd.ExecuteNonQuery(); 
         connection.Close(); 
        } 


       } 
       MessageBox.Show("Records inserted."); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
     }