我正在做winforms ..我正在比较datagridview列值和db值..
如果db中存在DataGridView
列,我想要进行更新过程(如果不存在),我想进行插入过程。
我试过这段代码
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()); }
}
虽然条件工作正常..但我不知道如何在for循环中移动下一行值..
请支持我。
谢谢和问候
答案 0 :(得分:0)
执行while (dr.Read())
声明后,您必须重置DataReader
。但唯一的方法是为每一行再次调用此行:
dr = Sqlcmd.ExecuteReader();
。难以置信的效率,但它会解决您的问题。