首页 > 解决方案 > 检查datagridview中是否存在行,如果不存在则插入新行c#

问题描述

我正在尝试从 SQL 数据库调用数据并在 datagirview 中显示,到目前为止一切正常,但是我想在调用新数据并且数据网格视图中存在该行之后,将 datagridview 列中的 qty 更新为 1,如果数据不存在在 datagridview 然后添加新行。检查行是否存在的条件,可以是条形码或索引[0]

我使用此代码调用数据

SqlCommand cmd = new SqlCommand("calldata", com);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@barcode", Convert.ToInt64(txtbarcode.Text));
//Created a new DataTable
txtbarcode.Text = "";
SqlDataAdapter da = new SqlDataAdapter(cmd);
dtgproduct.DataSource = dataTable.DefaultView;

com.Close();


com.Open();//Open the SQL connection

SqlDataReader reader = cmd.ExecuteReader();//Create a SqlDataReader

while (reader.Read())//For each row that the SQL query returns do
{
    DataRow dr = dataTable.NewRow();//Create new DataRow to populate the DataTable (which is currently binded to the DataGrid)
    dr[0] = reader[0];//Fill DataTable column 0 current row (Product) with reader[0] (Product from sql)
    dr[1] = reader[1];
    dr[2] = reader[2];
    dr[3] = reader[3];
    dr[4] = reader[4];
    dr[5] = reader[5];


    dataTable.Rows.Add(dr);
}

谢谢大家!!

标签: c#sql

解决方案


尝试以下操作:

DataTable dt = new DataTable();
dt.Load(reader);

然后,您可以仅依靠您的 SQL 调用来防止重复行。


推荐阅读