I'm inserting data into 2 tables from a textbox and gridview; however, when I get an error, data is still being inserted into one of the tables. What I want is once I get the error then the data shouldn't insert at all.
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
{
using (SqlCommand cmd = new SqlCommand("PP_CreateSheet", connection))
{
cmd.CommandType = CommandType.StoredProcedure;
foreach (DataRow dr in dt.Rows)
{
cmd.Parameters.AddWithValue("@loadSheetNum", lblSheet.Text);
cmd.Parameters.AddWithValue("@invoiceNum", dr["Invoice #"]);
cmd.Parameters.AddWithValue("@invoiceQty", dr["Invoice Qty"]);
cmd.Parameters.AddWithValue("@custName", dr["Customer Name"]);
cmd.Parameters.AddWithValue("@invoiceWeight", dr["Total Invoice Weight"]);
cmd.Parameters.Add("@status", SqlDbType.NVarChar).Value = 1;
}
cmd.ExecuteNonQuery();
}
using (SqlCommand comm = new SqlCommand("PP_CreateNumber", connection))
{
for (int i = 0; i < ContentPlaceHolder1.Controls.Count; i++)
{
Control ctrl = ContentPlaceHolder1.Controls[i];
if (ctrl is TextBox)
{
TextBox txt = (TextBox)ctrl;
//txt.TextMode = System.Web.UI.WebControls.TextBoxMode.Number;
value = txt.Text;
int parsedValue;
if (!int.TryParse(value, out parsedValue))
{
lblError.Text = "Please enter only numeric values for number";
return;
}
else
{
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.AddWithValue("@loadSheetNum", lblSheet.Text);
comm.Parameters.Add("@Number", SqlDbType.NVarChar).Value = value;
}
}
comm.ExecuteNonQuery();
}
}
}