2017-04-26 35 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