比较Data Gridview和数据库字段以获取更新过程

时间:2017-04-26 15:15:16

标签: c# winforms datagridview

我正在做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循环中移动下一行值..

请支持我。

谢谢和问候

1 个答案:

答案 0 :(得分:0)

执行while (dr.Read())声明后,您必须重置DataReader。但唯一的方法是为每一行再次调用此行:

dr = Sqlcmd.ExecuteReader();

在你的while循环之前

。难以置信的效率,但它会解决您的问题。