2017-04-26 78 views
0

我做的WinForms。在说我比较datagridview的列值和dB值..比较的DataGridView和数据库字段更新过程

如果DataGridView列在数据库中存在我想要做的更新过程如果不存在,我想要做Insert过程。

我想这个代码

string resultJewelId = null; string QueryJewelId = null; 

    private void AddStockTable() 
    { 
     try 
     { 
      Sqlcon = objDB.DBConnection(); 


      QueryJewelId= "Select JewelId from tblStock"; 

      Sqlcmd = new SqlCommand(QueryJewelId, Sqlcon); 


      dr = Sqlcmd.ExecuteReader(); 

      if (dr.HasRows) 
      { 
       for (int i = 0; i < dataGridView1.Rows.Count; i++) 
       { 
        while (dr.Read()) 
        { 
         resultJewelId = dr.GetString(0); 

         if (resultJewelId == dataGridView1[0, i].Value.ToString()) 
         { 
          MessageBox.Show("Update process"); 

         } 
         else 
         { 
          MessageBox.Show("Insert Process"); 
         } 
        } 
       } 

      } 
     } 
     catch (Exception ex) 
     { MessageBox.Show(ex.ToString()); } 
    } 

虽然条件工作正常。但我不知道如何在移动下一行值环..

请支持我。

感谢和问候

回答

0

一旦你执行你的while (dr.Read())声明必须重置您的DataReader。但要做到这一点的唯一方法是再次调用此行的每一行:

dr = Sqlcmd.ExecuteReader();

while循环之前。令人难以置信的低效率,但它会解决您的问题。

+0

ohhh ...我会尝试... – Veera

+0

如果您发现任何其他解决方案,请更新我... – Veera

+0

我在旅行...会告诉早上.. – Veera