У меня есть DataTable, и я вставляю записи в SQL базу данных сервера. У меня уже есть мой пользовательский тип таблицы и хранимая процедура, и она работает нормально. все записи из моей таблицы данных были вставлены в базу данных, но проблема в том, что всякий раз, когда я нажимаю кнопку Сохранить, две одинаковые записи будут вставлены в мою базу данных. например, моя таблица данных содержит только одну запись
TRANSACTION ID | QTY | UNIT | ARTICLES | UNIT PRICE | AMOUNT
TR-001 2 CASE PRODUCT-A 100.00 200.00
, но когда я нажимаю кнопку СОХРАНИТЬ, в мою серверную таблицу sql будут вставлены две одинаковые записи, например:
TRANSACTION ID | QTY | UNIT | ARTICLES | UNIT PRICE | AMOUNT
TR-001 2 CASE PRODUCT-A 100.00 200.00
TR-001 2 CASE PRODUCT-A 100.00 200.00
Я пробовал разные виды механизма l oop, как для l oop и для каждого l oop, но тот же результат. в чем проблема? вот мой код:
public DataTable GetDataTable()
{
dt_SalesInv.Columns.Add("TRANSACTION ID");
dt_SalesInv.Columns.Add("QTY");
dt_SalesInv.Columns.Add("UNIT");
dt_SalesInv.Columns.Add("ARTICLES");
dt_SalesInv.Columns.Add("UNIT PRICE");
dt_SalesInv.Columns.Add("AMOUNT");
DataRow drLocal = null;
foreach (DataGridViewRow dr in dgvSalesInv.Rows)
{
drLocal = dt_SalesInv.NewRow();
drLocal["TRANSACTION ID"] = dr.Cells["TRANSACTION ID"].Value;
drLocal["QTY"] = dr.Cells["QTY"].Value;
drLocal["UNIT"] = dr.Cells["UNIT"].Value;
drLocal["ARTICLES"] = dr.Cells["ARTICLES"].Value;
drLocal["UNIT PRICE"] = dr.Cells["UNIT PRICE"].Value;
drLocal["AMOUNT"] = dr.Cells["AMOUNT"].Value;
dt_SalesInv.Rows.Add(drLocal);
}
return dt_SalesInv;
}
public void Save_SalesInvoice()
{
try
{
//calling stored proc
SqlConnection connectionstring = connectionString.Getconnection();
SqlCommand comm = new SqlCommand("sp_Save_SalesInvoice_2", connectionstring);
comm.CommandType = CommandType.StoredProcedure;
GetDataTable();
comm.Parameters.AddWithValue("@data", dt_SalesInv);
comm.ExecuteNonQuery();
if (comm.ExecuteNonQuery() >= 1)
{
MessageBox.Show("New Sales Invoice has been added to the Database!", "Sub-
Category", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Try Catch Error Message", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
помогите пожалуйста. спасибо