اين چندمين سواليه كه اين چند وقته دارم مطرح ميكنم تا الان هيشكي نتونسته يا نخاسته جواب بده اميدوارم اين رو بشه جواب بدين.
من توي برنامم با استفاده از چند تا شرط مختلف چند تا دستور sqlرو اجرا ميكنم كه هر كدومشون هم داراي دستورات متفاوتين اما وابسته به هم هستند كه بايد تمامي عمليات ها به درستي تو دبتابيسم ذخيره بشن من از sql transactionبه اين ترتيب استفاده كردم اما جواب نميده
//
foreach (DataGridViewRow rows in dataGridView1.Rows)
{
if (rows.Cells[1].Value != null)
{
string serial = rows.Cells[2].Value.ToString();
objcom.CommandText = "select count(*) from goods where serial like '" + serial + "'";
objcon.Open();
maxcode = objcom.ExecuteScalar();
sqltran1 = objcon.BeginTransaction();
n = (int)maxcode;
if (n == 0)//kala dar anbar mojod nist
{
objcom.CommandText = "insert into goods values(@code,@type,@model,@p_buy,@p_sale,@serial,@ tutal,@b_date,@g_date)" +
"insert into buy_factors values(@code,@type,@model,@serial,@seller,@tutal,@ p_buy,@tarikh)" +
"insert into tasvie values(@code,@mablagh,@takh,@par,@sod,@baghi)";
objcom.Parameters.AddWithValue("@tutal", Int32.Parse(rows.Cells[3].Value.ToString()));
}
else//kala dar anbar vojod dard
{
objcom.CommandText = "select tedad from goods where serial like '" + serial + "'";
maxcode = objcom.ExecuteScalar();
n = (int)maxcode;
objcom.CommandText = "update goods set tedad=@tedad where serial like '" + serial + "'" +
"insert into tasvie values(@code,@mablagh,@takh,@par,@sod,@baghi)" +
"insert into buy_factors values(@code,@type,@model,@serial,@seller,@tedad,@ p_buy,@tarikh)";
objcom.Parameters.AddWithValue("@tedad", n + Int32.Parse(rows.Cells[3].Value.ToString()));
}
objcom.Parameters.AddWithValue("@code", Int32.Parse(cod_factor.Text));
objcom.Parameters.AddWithValue("@type", rows.Cells[0].Value.ToString());
objcom.Parameters.AddWithValue("@model", rows.Cells[1].Value.ToString());
objcom.Parameters.AddWithValue("@p_buy", Int32.Parse(rows.Cells[4].Value.ToString()));
objcom.Parameters.AddWithValue("@p_sale", Int32.Parse(rows.Cells[5].Value.ToString()));
objcom.Parameters.AddWithValue("@serial", serial);
objcom.Parameters.AddWithValue("@b_date", bdate_txt.Text);
objcom.Parameters.AddWithValue("@g_date", rows.Cells[6].Value.ToString());
objcom.Parameters.AddWithValue("@seller", seller_txt.Text);
objcom.Parameters.AddWithValue("@par", Int32.Parse(par_txt.Text));
objcom.Parameters.AddWithValue("@takh", Int32.Parse(takhfif_txt.Text));
objcom.Parameters.AddWithValue("@mablagh", Int32.Parse(jam_txt.Text));
objcom.Parameters.AddWithValue("@baghi", Int32.Parse(baghi.Text));
objcom.Parameters.AddWithValue("@sod", Int32.Parse(baghi.Text));
objcom.Parameters.AddWithValue("@tarikh", bdate_txt.Text);
try
{
objcom.Transaction = sqltran1;
objcom.ExecuteNonQuery();
sqltran1.Commit();
objcon.Close();
}
catch (SqlException SqlExceptionErr)
{
MessageBox.Show(SqlExceptionErr.Message);
sqltran1.Rollback();
}
}
}
//
if (checkBox3.Checked)//
{
objcom.CommandText = "insert into pay_naghdi (@code,@naghd,@date,@name)";
objcom.Parameters.AddWithValue("@code", Int32.Parse(cod_factor.Text));
objcom.Parameters.AddWithValue("@naghd", Int32.Parse(naghd.Text));
objcom.Parameters.AddWithValue("@date", bdate_txt.Text);
objcom.Parameters.AddWithValue("@name", seller_txt.Text);
objcon.Open();
try
{
sqltran3 = objcon.BeginTransaction();
objcom.Transaction = sqltran3;
objcom.ExecuteNonQuery();
sqltran3.Commit();
}
catch (SqlException SqlExceptionErr)
{
MessageBox.Show(SqlExceptionErr.Message);
sqltran3.Rollback();
}
objcon.Close();
}
if (checkBox2.Checked)//
{
foreach (DataGridViewRow item in dataGridView2.Rows)
{
if (item.Cells[0].Value != null)
{
objcom.CommandText = "insert into pay_chek (@code,@bname,@branch,@mablagh,@sname,@serial,@tar ikh,@stat,@m_name,@g_name)";
objcom.Parameters.AddWithValue("@code", Int32.Parse(cod_factor.Text));
objcom.Parameters.AddWithValue("@bname", item.Cells[0].Value.ToString());
objcom.Parameters.AddWithValue("@branch", item.Cells[1].Value.ToString());
objcom.Parameters.AddWithValue("@sname", item.Cells[2].Value.ToString());
objcom.Parameters.AddWithValue("@mablagh", Int32.Parse(item.Cells[3].Value.ToString()));
objcom.Parameters.AddWithValue("@serial", Int32.Parse(item.Cells[4].Value.ToString()));
objcom.Parameters.AddWithValue("@tarikh", item.Cells[5].Value.ToString());
objcom.Parameters.AddWithValue("@stat", "");
objcom.Parameters.AddWithValue("@m_name", seller_txt.Text);
objcom.Parameters.AddWithValue("@g_name", "");
objcon.Open();
sqltran2 = objcon.BeginTransaction();
try
{
objcom.Transaction = sqltran2;
objcom.ExecuteNonQuery();
sqltran2.Commit();
}
catch (SqlException SqlExceptionErr)
{
MessageBox.Show(SqlExceptionErr.Message);
sqltran2.Rollback();
}
objcon.Close();
}
}
}
بايد تماي اطلاعات توي ديتاگريدهام تو ديتابيس ذخيره بشن و اگه سطري ذخيره نشه بقيه سطرهام نبياد ذخيره شه اما الان فقط اون سطي كه مشكل داره ذخيره نميشه
رويداد دكمه ثبتم رو بطور كامل گذاشتم اميدوارم بتونين مشكل رو بگين
ممنون