2016-04-23 47 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); 
      } 
     }