如何比较数据gridview和数据库字段以进行更新过程

时间:2017-04-28 14:22:08

标签: 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)

最好的办法是编写一个存储过程来检查数据是否存在并相应地更新数据库

Create procedure AddorUpdateStock
@JewelId it,
--remaining columns
if not exists(select JewelId from tblstock  where JewelId = @JewelId)
begin
--insert
end
else
begin
--update
end

循环遍历datagridview中的所有行并调用此过程