#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-вызов, чтобы предотвратить дублирование строк.