نمایش نتایج 1 تا 12 از 12

نام تاپیک: كار با sqltranaction

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #6
    کاربر دائمی آواتار ucnazard
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    تبریز
    پست
    178

    نقل قول: كار با sqltranaction

    ممنون از راهنماييتون
    يه سوال بدستور commitالان با وجود بروز خطاهم اجرا ميشه اين مشكلي نداره؟؟
    وقتي خطا وجود داره بازهم تو سطر commitهمون eception رو ميده(This SqlTransaction has completed; it is no longer usable
    )
    و وقتي كه خطا وجود نداره فقط مقادير سطر اول درست درج ميشه تو ديتابيس البته من كدم يه اررور داشت كه دستورات رو به صورت زير تغيير دادم.

    //
    //
    objcon.Open();
    sqltran1 = objcon.BeginTransaction();
    try
    {
    objcom.Transaction = sqltran1;
    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();

    n = (
    int)maxcode;
    if (n == 0)//kala dar anbar mojod nist
    {
    objcom.CommandText =
    "insert into goods values('" + cod + "','" + typ + "','" + model + "','" + p_buy + "','" + p_sale + "','" + serial + "','" + total + "','" + b_date + "','" + g_date + "')" +
    "insert into buy_factors values('" + cod + "','" + typ + "','" + model + "','" + serial + "','" + seller + "','" + total + "','" + p_buy + "','" + tarikh + "')" +
    "insert into tasvie values('" + code + "','" + mablagh + "','" + takh + "','" + par + "','" + sod + "','" + baghi + "')";
    }
    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('" + cod + "','" + mablagh + "','" + takh + "','" + par + "','" + sod + "','" + baghi + "')" +
    "insert into buy_factors values('" + cod + "','" + typ + "','" + model + "','" + serial + "','" + seller + "','" + total + "','" + p_buy + "','" + tarikh + "')";
    // objcom.Parameters.AddWithValue("@tedad", n + Int32.Parse(rows.Cells[3].Value.ToString()));
    }
    total =
    Int32.Parse(rows.Cells[3].Value.ToString());
    cod =
    Int32.Parse(cod_factor.Text);
    typ = rows.Cells[0].Value.ToString();
    model = rows.Cells[1].Value.ToString();
    p_buy =
    Int32.Parse(rows.Cells[4].Value.ToString());
    p_sale =
    Int32.Parse(rows.Cells[5].Value.ToString());
    b_date = bdate_txt.Text;
    g_date = rows.Cells[6].Value.ToString();
    seller = seller_txt.Text;
    par =
    Int32.Parse(par_txt.Text);
    takh =
    Int32.Parse(takhfif_txt.Text);
    mablagh =
    Int32.Parse(jam_txt.Text);
    baghi =
    Int32.Parse(baghi_txt.Text);
    sod =
    Int32.Parse(baghi_txt.Text);
    tarikh = bdate_txt.Text;
    try
    {
    objcom.ExecuteNonQuery();

    }
    catch (SqlException SqlExceptionErr)
    {
    MessageBox.Show(SqlExceptionErr.Message);
    // sqltran1.Rollback();
    // break;
    }
    }
    }
    sqltran1.Commit();
    objcon.Close();
    //
    if (checkBox3.Checked)//
    {
    objcom.CommandText =
    "insert into pay_naghdi ('" + cod + "','" + naghd + "','" + tarikh + "','" + seller + "')";
    cod =
    Int32.Parse(cod_factor.Text);
    naghd =
    Int32.Parse(naghd_txt.Text);
    tarikh = bdate_txt.Text;
    seller = 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 ('" + cod + "','" + bname + "','" + brnch + "','" + mablagh + "','" + sname + "','" + serial_ch + "','" + sarresid + "','" + state + "','" + seller + "','" + g_name + "')";
    cod =
    Int32.Parse(cod_factor.Text);
    bname = item.Cells[0].Value.ToString();
    brnch = item.Cells[1].Value.ToString();
    sname = item.Cells[2].Value.ToString();
    mablagh =
    Int32.Parse(item.Cells[3].Value.ToString());
    serial_ch =
    Int32.Parse(item.Cells[4].Value.ToString());
    sarresid = item.Cells[5].Value.ToString();
    state =
    "";
    seller = seller_txt.Text;
    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();
    }
    }
    }
    //if naghdi
    sqltran1.Commit();
    }
    catch (SqlException SqlExceptionErr)
    {
    MessageBox.Show(SqlExceptionErr.Message);
    sqltran1.Rollback();
    break;
    }



    كليه اين دستورات يا بايد تو ديتابيس درست درج بشن يا هيچ كدوم انجام نشن
    كمك كنيد لطفا
    آخرین ویرایش به وسیله ucnazard : چهارشنبه 27 بهمن 1389 در 16:09 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •