一部の列が編集可能なデータグリッドビューがあります。Datagrid は、下部に新しい行を自動的に追加します。ボタンのクリック時にグリッドの内容をデータベースに挿入したいのですが、各ループに挿入クエリを書き込むと、ボタンのコミットされていない行が原因で例外がスロー されます例外:オブジェクト参照がオブジェクトのインスタンスに設定されてい ません助けてくださいこれを修正..コードはこちら
private void btn_save_Click(object sender, EventArgs e)
{
try
{
con.Open();
cmd = new SqlCommand("Select SupplierId from tbl_Supplier where SupplierName ='" + cmbSupplierName.Text + "'", con);
sdr = cmd.ExecuteReader();
if (sdr.HasRows)
{
while (sdr.Read())
{
string sup_id = sdr["SupplierId"].ToString();
//txt_id.Text = sup_id;
}
}
foreach (DataGridViewRow row in grdPurchase.Rows)
{
string material_id = row.Cells[2].Value.ToString();
int m_id = int.Parse(material_id);
string Quantity = row.Cells[3].Value.ToString();
float m_quantity = float.Parse(Quantity);
string rate = row.Cells[4].Value.ToString();
float m_rate = float.Parse(rate);
string total = row.Cells[5].Value.ToString();
float m_total = float.Parse(total);
//string bill = txt_billno.Text;
int supplier_id = int.Parse(sup_id);
//string date = dtp_Purchase.Text;
// dt.Rows.Add(supplier_id, bill, m_id, m_quantity, m_rate, m_total, date);
String query = "insert into tbl_Purchase (SupplierId,MaterialId,BillNo,Quantity,Rate,Total,Date) values(" + supplier_id + "," + m_id + ",'" + txt_billno.Text + "'," + m_quantity + "," + m_rate + "," + m_total + ",'" + dtp_Purchase.Text + "')";
cmd = new SqlCommand(query, con);
cmd.ExecuteNonQuery();
//object id = cmd.ExecuteScalar();
// string purchase_id = id.ToString();
MessageBox.Show("Inserted: ");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
finally
{
sdr.Close();
con.Close();
}
}