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

نام تاپیک: ثبت سطرهای datagrid در صورتی که قبلا ثبت نشده باشه و آپدیت در صورتی که قبلا ثبت شده باشه

  1. #1
    کاربر دائمی
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    تهران
    پست
    742

    ثبت سطرهای datagrid در صورتی که قبلا ثبت نشده باشه و آپدیت در صورتی که قبلا ثبت شده باشه

    با سلام

    دوستان من گریدمو کاربر دستی پر میکنه و با یه حلقه در بانک ذخیره میشه.تو وارد کردن مشکلی نیست.اما چطور بیام سطرهارو آپدیت کنم.بعضی وقتا کاربر میاد یه سطر به سطرها اضافه میکنه که این سطر باید در بانک insert شه بعضی وقتا هم سطرای قبلی رو تغییر میده و این تغییرات باید در بانک آپدیت شه.

  2. #2
    کاربر دائمی
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    تهران
    پست
    742

    نقل قول: ثبت سطرهای datagrid در صورتی که قبلا ثبت نشده باشه و آپدیت در صورتی که قبلا ثبت شده باشه


    for (int i = 0; i < dataGridView4.Rows.Count; i++)


    {

    SqlDataAdapter inserttomali = newSqlDataAdapter("insert into MaliRecieve (ID,Shsanad,Shgh,NameM,FamilyM,Nametor,DateSabt,Da teRecieve,TypeRecieve,MonyRecieve,mablaghekol,Comm )values('" + dataGridView4.Rows[i].Cells[0].Value.ToString() + "','" + shgh.Text + "','" + shgh.Text + "','" + t.Rows[0][2] + "','" + t.Rows[0][3] + "','" + t.Rows[0][18] + "','" + dataGridView4.Rows[i].Cells[1].Value.ToString() + "','" + dataGridView4.Rows[i].Cells[2].Value.ToString() + "','" + dataGridView4.Rows[i].Cells[3].Value.ToString() + "','" + Convert.ToInt32(dataGridView4.Rows[i].Cells[4].Value.ToString().Replace(",", "")) + "','" + Convert.ToInt32(t.Rows[0][25]) + "','')", connect);

    DataTable tmali = newDataTable(); inserttomali.Fill(tmali);


    }


  3. #3
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: ثبت سطرهای datagrid در صورتی که قبلا ثبت نشده باشه و آپدیت در صورتی که قبلا ثبت شده باشه

    از دستور UPSERT استفاده کنید.جست و جو کنید.نمونه خیلی زیاد هست.

  4. #4
    کاربر دائمی آواتار sohil_ww
    تاریخ عضویت
    آذر 1391
    محل زندگی
    هر جا شادی باشه
    پست
    891

    نقل قول: ثبت سطرهای datagrid در صورتی که قبلا ثبت نشده باشه و آپدیت در صورتی که قبلا ثبت شده باشه

    نقل قول نوشته شده توسط FastCode مشاهده تاپیک
    از دستور UPSERT استفاده کنید.جست و جو کنید.نمونه خیلی زیاد هست.
    با اجازه آقا بهروز (سپاسگذارم ) این پیج خوب توضیح داده امیدوارم به کارت بیاد

    لینک

  5. #5
    کاربر دائمی
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    تهران
    پست
    742

    نقل قول: ثبت سطرهای datagrid در صورتی که قبلا ثبت نشده باشه و آپدیت در صورتی که قبلا ثبت شده باشه

    دوستان مرسی که کمک کردین ولی من زیاد سر درنیوردم از اون لینک.میشه ساده تر عنوان کنین

  6. #6
    کاربر دائمی
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    تهران
    پست
    742

    نقل قول: ثبت سطرهای datagrid در صورتی که قبلا ثبت نشده باشه و آپدیت در صورتی که قبلا ثبت شده باشه

    دوستان من برنامه آپدیتو نوشتم و درست هم کار میکنه ولی در شرایطی که سطر جدید وارد نشده باشه و تعداد سطرها تغیییر نکرده باشه

    مشکل من واسه زمانیه که سطری جدیدی کاربر وارد میکنه در این حالت یگه دیگه آپدیتی در کار نیست و باید Insert انجام شه.حالا اون سطری که کاربر وارد کرده رو از کجا پیدا کنیم(کدش چیه) که همون سطر یا سطرهارو insert کنیم؟

  7. #7
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    در حال حاضر MVC
    سن
    42
    پست
    301

    نقل قول: ثبت سطرهای datagrid در صورتی که قبلا ثبت نشده باشه و آپدیت در صورتی که قبلا ثبت شده باشه

    کاری نداره یه فیلد رو توی جدولت در نظر بگیر مثلا" id برای سطرهایی که از دیتابیس خونده میشن id مقدار داره ولی برای سطرهایی که جدید وارد شدن مقداری نداره
    حالا کاری که باید بکنی این هست اطلاعات گریدتو خط به خط بخون اگه id مقدار داشت update وگرنه بهش مقدار بده و insert کن
    به همین راحتی

  8. #8
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: ثبت سطرهای datagrid در صورتی که قبلا ثبت نشده باشه و آپدیت در صورتی که قبلا ثبت شده باشه

    select کن.اگر وجود نداشت یعنی باید insert بشه
    جست و جو کن: DataRowState و http://msdn.microsoft.com/en-us/library/0f8054fy.aspx

  9. #9

    نقل قول: ثبت سطرهای datagrid در صورتی که قبلا ثبت نشده باشه و آپدیت در صورتی که قبلا ثبت شده باشه

    اول کوئری آپدیت بزن اگر انجام نشد اونوقت اینزرت کن(کد رو تست نکردم):

    if (connect.State != ConnectionState.Open)
    {
    connect.Open();
    }
    for (int i = 0; i < dataGridView4.Rows.Count; i++)
    {
    SqlCommand cmd = new SqlCommand("UPDATE MaliRecieve SET Shsanad=@Shsanad , Shgh=@Shgh , NameM=@NameM , FamilyM=@FamilyM , Nametor=@Nametor , DateSabt=@DateSabt , DateRecieve=@DateRecieve , TypeRecieve=@TypeRecieve , MonyRecieve=@MonyRecieve , mablaghekol=@mablaghekol , Comm=@Comm WHERE ID=@ID ",connect);
    cmd.Parameters.AddWithValue("@!D", Convert.ToInt32(dataGridView4.Rows[i].Cells[0].Value));
    cmd.Parameters.AddWithValue("@Shsanad", shgh.Text);
    cmd.Parameters.AddWithValue("@Shgh", shgh.Text);
    cmd.Parameters.AddWithValue("@NameM", t.Rows[0][2]);
    cmd.Parameters.AddWithValue("@FamilyM", t.Rows[0][3]);
    cmd.Parameters.AddWithValue("@Nametor", t.Rows[0][18]);
    cmd.Parameters.AddWithValue("@DateSabt", dataGridView4.Rows[i].Cells[1].Value.ToString());
    cmd.Parameters.AddWithValue("@DateRecieve", dataGridView4.Rows[i].Cells[2].Value.ToString());
    cmd.Parameters.AddWithValue("@TypeRecieve", dataGridView4.Rows[i].Cells[3].Value.ToString());
    cmd.Parameters.AddWithValue("@MonyRecieve", Convert.ToInt32(dataGridView4.Rows[i].Cells[4].Value.ToString().Replace(",", "")));
    cmd.Parameters.AddWithValue("@mablaghekol", Convert.ToInt32(t.Rows[0][25]));
    cmd.Parameters.AddWithValue("@Comm", null);

    int count = cmd.ExecuteNonQuery();
    if (count == 0)
    {
    cmd.CommandText = "insert into MaliRecieve (ID,Shsanad,Shgh,NameM,FamilyM,Nametor,DateSabt,Da teRecieve,TypeRecieve,MonyRecieve,mablaghekol,Comm ) values(@ID,@Shsanad,@Shgh,@NameM,@FamilyM,@Nametor ,@DateSabt,@DateRecieve,@TypeRecieve,@MonyRecieve, @mablaghekol,@Comm)";
    cmd.ExecuteNonQuery();
    }
    }
    if (connect.State != ConnectionState.Closed)
    {
    connect.Close();
    }

  10. #10
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: ثبت سطرهای datagrid در صورتی که قبلا ثبت نشده باشه و آپدیت در صورتی که قبلا ثبت شده باشه

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
    اول کوئری آپدیت بزن اگر انجام نشد اونوقت اینزرت کن(کد رو تست نکردم):

    if (connect.State != ConnectionState.Open)
    {
    connect.Open();
    }
    for (int i = 0; i < dataGridView4.Rows.Count; i++)
    {
    SqlCommand cmd = new SqlCommand("UPDATE MaliRecieve SET Shsanad=@Shsanad , Shgh=@Shgh , NameM=@NameM , FamilyM=@FamilyM , Nametor=@Nametor , DateSabt=@DateSabt , DateRecieve=@DateRecieve , TypeRecieve=@TypeRecieve , MonyRecieve=@MonyRecieve , mablaghekol=@mablaghekol , Comm=@Comm WHERE ID=@ID ",connect);
    cmd.Parameters.AddWithValue("@!D", Convert.ToInt32(dataGridView4.Rows[i].Cells[0].Value));
    cmd.Parameters.AddWithValue("@Shsanad", shgh.Text);
    cmd.Parameters.AddWithValue("@Shgh", shgh.Text);
    cmd.Parameters.AddWithValue("@NameM", t.Rows[0][2]);
    cmd.Parameters.AddWithValue("@FamilyM", t.Rows[0][3]);
    cmd.Parameters.AddWithValue("@Nametor", t.Rows[0][18]);
    cmd.Parameters.AddWithValue("@DateSabt", dataGridView4.Rows[i].Cells[1].Value.ToString());
    cmd.Parameters.AddWithValue("@DateRecieve", dataGridView4.Rows[i].Cells[2].Value.ToString());
    cmd.Parameters.AddWithValue("@TypeRecieve", dataGridView4.Rows[i].Cells[3].Value.ToString());
    cmd.Parameters.AddWithValue("@MonyRecieve", Convert.ToInt32(dataGridView4.Rows[i].Cells[4].Value.ToString().Replace(",", "")));
    cmd.Parameters.AddWithValue("@mablaghekol", Convert.ToInt32(t.Rows[0][25]));
    cmd.Parameters.AddWithValue("@Comm", null);

    int count = cmd.ExecuteNonQuery();
    if (count == 0)
    {
    cmd.CommandText = "insert into MaliRecieve (ID,Shsanad,Shgh,NameM,FamilyM,Nametor,DateSabt,Da teRecieve,TypeRecieve,MonyRecieve,mablaghekol,Comm ) values(@ID,@Shsanad,@Shgh,@NameM,@FamilyM,@Nametor ,@DateSabt,@DateRecieve,@TypeRecieve,@MonyRecieve, @mablaghekol,@Comm)";
    cmd.ExecuteNonQuery();
    }
    }
    if (connect.State != ConnectionState.Closed)
    {
    connect.Close();
    }
    البته با transaction ه serializable

تاپیک های مشابه

  1. ثبت سطرهای datagridview به طور جداگانه
    نوشته شده توسط محمد هدایتی در بخش C#‎‎
    پاسخ: 2
    آخرین پست: شنبه 23 مرداد 1389, 12:56 عصر
  2. ثبت تغییرات DataGrid
    نوشته شده توسط Blackk_lightt در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 7
    آخرین پست: چهارشنبه 21 فروردین 1387, 07:47 صبح
  3. ثبت ورودی DataGrid در پایگاه داده
    نوشته شده توسط soosan در بخش C#‎‎
    پاسخ: 3
    آخرین پست: پنج شنبه 28 مهر 1384, 12:47 عصر
  4. سطرهای DataGrid
    نوشته شده توسط Happy_davood در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: دوشنبه 29 فروردین 1384, 00:42 صبح
  5. تغییر رنگ سطرهای dataGrid
    نوشته شده توسط turk_programmer در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: یک شنبه 08 شهریور 1383, 20:29 عصر

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

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