Проверьте, существует ли строка в datagridview, если нет, то вставьте новую строку c#

#c# #sql

Вопрос:

Я пытаюсь вызвать данные из базы данных SQL и отобразить в datagirview, до сих пор все в порядке, но я хочу обновить количество в столбце datagridview на 1, после того как я вызову новые данные, и строка будет существовать в datagridview, если данные не существуют в 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);
}
 

Спасибо всем!!

Ответ №1:

Попробуйте сделать следующее:

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

Тогда вы можете просто положиться на свой SQL-вызов, чтобы предотвратить дублирование строк.