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

نام تاپیک: چگونگی نوشتن Update و Insert در یک Button

  1. #1

    چگونگی نوشتن Update و Insert در یک Button

    سلام دوستان من یک فرم دارم به شکل زیر که دیتابیسش اکسسه وقتی کاربرروی گریدکلیک میکنه اطلاعات توی تکست باکس میاداگرسطرخالی باشه تکستهاخالی می شودومیتوان اطلاعات جدیدرادرتکست باکس هااضافه کردمیخوام وقتی Add را زداگر اطلاعات وجوداشت که Updateکنداگر نه insertکند باتوجه به اینکه ContactIdدرتکست باکس هانشان داده نمی شود وبه صورتAutonumberهست چطوری میتونم اینکاروبکنم اگر کسی راهنمایی کنه ممنون میشم...
    عکس های ضمیمه عکس های ضمیمه

  2. #2

    نقل قول: چگونگی نوشتن UpdateوInsertدریک Button

    نمیتونم ContactIdرودرتکست باکس نشان بدهم بایداینطوری درستش کنم این کدم برای گرفتن ContactIdنوشتم ولی جواب نگرفتم
    ;i = dataGridView1.SelectedCells[0].RowIndex


    OleDbCommand ocom = newOleDbCommand("SELECT C.ContactId from Contacts C Where ContactId=@ContactId", ocon);
    ocom.Parameters.AddWithValue("@ContactId", Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value));


  3. #3

    نقل قول: چگونگی نوشتن UpdateوInsertدریک Button

    میشه بیشترتوضیح بدیدکه چطوری بایداینکاروبکنم؟

  4. #4
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    776

    نقل قول: چگونگی نوشتن UpdateوInsertدریک Button

    نمیتونم ContactIdرودرتکست باکس نشان بدهم
    TextBox را روی فرم بذار و مخفی کن (hidden)
    TextBox.Visible=false

  5. #5

    Question چگونگی نوشتن UpdateوInsertدریک Button

    ممنون این هم راه خوبی است دوست عزیز اما مشکل من اینه که چه if تعریف کنم که این دو کار یعنی insert و update را با یک button انجام بدهم.
    من برنامه update این را جدا نوشتم اما حتی update را هم به درستی انجام نمی دهد و تمام داده های جدول را هم زمان عین هم می کند.
     OleDbCommand cmd2 = new OleDbCommand("UPDATE tblContact set "+"FirstName='"+txtName.Text+"',LastName='"+txtFam  ily.Text+"',Phone='"+txtPhone.Text+"',Mobile='"+tx  tMobile.Text+"',Address='"+txtAddress.Text+"'"+" where IdContact="+txtid.Text, myconnection);
    cmd2.Parameters.AddWithValue("@IdContact",Convert. ToInt32(txtid.Text.Trim()));
    cmd2.Parameters.AddWithValue("@FirstName", txtName.Text.Trim());
    cmd2.Parameters.AddWithValue("@LastName", txtFamily.Text.Trim());
    cmd2.Parameters.AddWithValue("@Phone", txtPhone.Text.Trim());
    cmd2.Parameters.AddWithValue("@Mobile", txtMobile.Text.Trim());
    cmd2.Parameters.AddWithValue("@Address", txtAddress.Text.Trim());
    try
    {
    myconnection.Open();
    byte X = 0;
    X = (byte)cmd2.ExecuteNonQuery();

    if (X != 0)
    {
    MessageBox.Show("عملیات انجام شد", "کاربر گرامی", MessageBoxButtons.OK, MessageBoxIcon.Information);
    this.tblContactTableAdapter.Fill(this.databaseCont actDataSet.tblContact);
    }
    else
    {
    MessageBox.Show("عملیات انجام نشد", "خطا", MessageBoxButtons.OK);
    }

    }
    catch (Exception err)
    {
    MessageBox.Show("عملیات انجام نشد" + err.Message, "خطا", MessageBoxButtons.OK);
    }
    finally
    {
    myconnection.Close();
    cmd2.Dispose();
    }

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

    نقل قول: چگونگی نوشتن UpdateوInsertدریک Button

    ساده است
    اگر textbox مخفی شده مقدار داشت پس Update
    اگر مقدار نداشت پس Insert

    بشرطیکه با هر بار کلیک بر روی ردیفهای گرید تکست باکس نیز با مقدار contactid پر بشه

    در ضمن وقتی پارامتر تعریف کردی در query نیز از پارامترها استفاده کنید نه مقدار تکست باکس ها
    بدینصورت FirstName=@FirstName , ...............

  7. #7

    Question چگونگی نوشتن UpdateوInsertدریک Button

    این کار را هم تست کردم دوست عزیز با پارامتر که می نویسم این خطا را می دهد!!
    فکر کنم دیتا بیس access با دستورات sql مشکل دارد.
    عکس های ضمیمه عکس های ضمیمه

  8. #8
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    776

    نقل قول: چگونگی نوشتن UpdateوInsertدریک Button

    لطفا کدتون را اینجا بذارین ( اصلاح شده کد پست 7 ) - به احتمال زیاد query تون از نظر Datat Type مشکل داره

  9. #9

    Question چگونگی نوشتن UpdateوInsertدریک Button

    این کل کد هایی است که برای این button نوشتم دوست عزیز.
    if (txtid.Text=="")

    {
    myconnection.Open();
    OleDbCommand cmd3 = new OleDbCommand("insert into tblContact(FirstName,LastName,Phone,Mobile,Address ) VALUES(@FirstName,@LastName,@Phone,@Mobile,@Addres s)", myconnection);

    cmd3.Parameters.AddWithValue("@FirstName", txtName.Text.Trim());
    cmd3.Parameters.AddWithValue("@LastName", txtFamily.Text.Trim());
    cmd3.Parameters.AddWithValue("@Phone", txtPhone.Text.Trim());
    cmd3.Parameters.AddWithValue("@Mobile", txtMobile.Text.Trim());
    cmd3.Parameters.AddWithValue("@Address", txtAddress.Text.Trim());


    int z = 0;
    z = cmd3.ExecuteNonQuery();

    if (z != 0)
    {
    MessageBox.Show("!داده ها با موفقیت ثبت شد", "ثبت داده");
    }
    else
    {
    MessageBox.Show("!داده ها با موفقیت ثبت نشد", "ثبت داده");

    }
    myconnection.Close();
    cmd3.Dispose();
    }
    else
    {
    OleDbCommand cmd2 = new OleDbCommand("UPDATE tblContact set FirstName=@FirstName,LastName=@LastName,Phone=@Pho ne,Mobile=@Mobile,Address=@Address where IdContact=@IdContact", myconnection);
    cmd2.Parameters.AddWithValue("@IdContact", Convert.ToInt32(txtid.Text.Trim()));
    cmd2.Parameters.AddWithValue("@FirstName", txtName.Text.Trim());
    cmd2.Parameters.AddWithValue("@LastName", txtFamily.Text.Trim());
    cmd2.Parameters.AddWithValue("@Phone", txtPhone.Text.Trim());
    cmd2.Parameters.AddWithValue("@Mobile", txtMobile.Text.Trim());
    cmd2.Parameters.AddWithValue("@Address", txtAddress.Text.Trim());
    try
    {
    myconnection.Open();
    byte X = 0;
    X = (byte)cmd2.ExecuteNonQuery();

    if (X != 0)
    {
    MessageBox.Show("عملیات انجام شد", "کاربر گرامی", MessageBoxButtons.OK, MessageBoxIcon.Information);
    this.tblContactTableAdapter.Fill(this.databaseCont actDataSet.tblContact);
    }
    else
    {
    MessageBox.Show("عملیات انجام نشد", "خطا", MessageBoxButtons.OK);
    }

    }
    catch (Exception err)
    {
    MessageBox.Show("عملیات انجام نشد" + err.Message, "خطا", MessageBoxButtons.OK);
    }
    finally
    {
    myconnection.Close();
    cmd2.Dispose();
    }
    }

  10. #10
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: چگونگی نوشتن UpdateوInsertدریک Button

    کدهاتونو اینطوری تغییر بدید:
    if (txtid.Text=="")            
    {
    OleDbCommand cmd3 = new OleDbCommand("insert into tblContact(FirstName,LastName,Phone,Mobile,Address ) VALUES(@FirstName,@LastName,@Phone,@Mobile,@Addres s)", myconnection);

    cmd3.Parameters.AddWithValue("@FirstName", txtName.Text.Trim());
    cmd3.Parameters.AddWithValue("@LastName", txtFamily.Text.Trim());
    cmd3.Parameters.AddWithValue("@Phone", txtPhone.Text.Trim());
    cmd3.Parameters.AddWithValue("@Mobile", txtMobile.Text.Trim());
    cmd3.Parameters.AddWithValue("@Address", txtAddress.Text.Trim());
    myconnection.Open();
    cmd3.ExecuteNonQuery();
    myconnection.Close();
    MessageBox.Show("!داده ها با موفقیت ثبت شد", "ثبت داده");
    cmd3.Dispose();
    }
    else
    {
    try
    {
    OleDbCommand cmd2 = new OleDbCommand("UPDATE tblContact set FirstName=@FirstName,LastName=@LastName,Phone=@Pho ne,Mobile=@Mobile,Address=@Address where IdContact=@IdContact", myconnection);
    cmd2.Parameters.AddWithValue("@IdContact", Convert.ToInt32(txtid.Text.Trim()));
    cmd2.Parameters.AddWithValue("@FirstName", txtName.Text.Trim());
    cmd2.Parameters.AddWithValue("@LastName", txtFamily.Text.Trim());
    cmd2.Parameters.AddWithValue("@Phone", txtPhone.Text.Trim());
    cmd2.Parameters.AddWithValue("@Mobile", txtMobile.Text.Trim());
    cmd2.Parameters.AddWithValue("@Address", txtAddress.Text.Trim());
    myconnection.Open();
    cmd2.ExecuteNonQuery();
    MessageBox.Show("عملیات انجام شد", "کاربر گرامی", MessageBoxButtons.OK, MessageBoxIcon.Information);
    this.tblContactTableAdapter.Fill(this.databaseCont actDataSet.tblContact);
    }
    catch (Exception err)
    {
    MessageBox.Show("عملیات انجام نشد" + err.Message, "خطا", MessageBoxButtons.OK);
    }
    finally
    {
    myconnection.Close();
    cmd2.Dispose();
    }
    }

    موفق باشید.

  11. #11

    نقل قول: چگونگی نوشتن UpdateوInsertدریک Button

    سلام
    ممنون از پاسختون دوست عزیز
    اما از خط آخر
    cmd2.Dispose();

    error می گیره اما اونم که جاش را تغییر دادم بازم همون خطا دفعه پیش را می دهد متاسفانه

  12. #12

    نقل قول: چگونگی نوشتن UpdateوInsertدریک Button

    والبته مينونيد به جاي استفاده از يك textbox و مخفي كردن اون كه قطعا راه حل استانداردي نيست از يك متغيير استفاده كنيد.
    و در مورد خطاي جديدتون يك بار بدون cmd2.Dispose امتحان كنيد. يعني اين خط رو اصلا حذف كنيد.

  13. #13

    نقل قول: چگونگی نوشتن UpdateوInsertدریک Button

    میشه بیشتر توضیح بدید دوست عزیز
    در داخل آن متغییر چه چیزی را بریزیم؟

  14. #14

    نقل قول: چگونگی نوشتن UpdateوInsertدریک Button

    نقل قول نوشته شده توسط *Ashrafi* مشاهده تاپیک
    میشه بیشتر توضیح بدید دوست عزیز
    در داخل آن متغییر چه چیزی را بریزیم؟
    يه متغيير از نوع رشته در نظر بگيريد(با مقدار اوليه "" يعني خالي باشه) بعدش زماني كه روي Gridview كليك ميكني مقدار فيلد contactid را در اين متغيير ميريزي و بعد اون در شرطت بررسي ميكني اگر مقدار متغيير مخالف "" بود كه insert ميكنه درغير اينصورت update كنه.

  15. #15

    نقل قول: چگونگی نوشتن UpdateوInsertدریک Button

    دوست عزیز من راه حل شما را هم تست کردم راه خوبی است اما در هر صورت آن خطا را می دهد
    i = dataGridView1.SelectedCells[0].RowIndex;
    string id = dataGridView1.Rows[i].Cells[0].Value.ToString();
    if (id=="")

  16. #16
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    776

    نقل قول: چگونگی نوشتن UpdateوInsertدریک Button


    MSDN says:

    The OLE DB .NET Provider does not support named parameters for passing parameters to an SQL statement or a stored procedure called by an OleDbCommand when CommandType is set to Text. In this case, the question mark (?) placeholder must be used. For example:

    SELECT * FROM Customers WHERE CustomerID = ?

    Therefore, the order in which OleDbParameter objects are added to the OleDbParameterCollection must directly correspond to the position of the question mark placeholder for the parameter in the command text.

    So make it that way:

    private void button1_Click(object sender, RoutedEventArgs e)
    {
    conn.Open();
    OleDbCommand cmd = new OleDbCommand("UPDATE tbl_Fullname SET Firstname=?,Lastname=?,Middlename=? WHERE fnID=?", conn);

    cmd.Parameters.Add("@firstn", OleDbType.VarChar).Value = textBox1.Text;
    cmd.Parameters.Add("@lastn", OleDbType.VarChar).Value = textBox2.Text;
    cmd.Parameters.Add("@midn", OleDbType.VarChar).Value = textBox3.Text;
    cmd.Parameters.Add("@idn", OleDbType.VarChar).Value = textBox5.Text;
    cmd.ExecuteNonQuery();
    conn.Close();
    }


    http://stackoverflow.com/questions/7...-and-ms-access

  17. #17
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    776

    نقل قول: چگونگی نوشتن UpdateوInsertدریک Button


  18. #18

    نقل قول: چگونگی نوشتن UpdateوInsertدریک Button

    دوست عزیز من کارایی که کردم رومیزارم تابیشترمتوجه کارایی که کردم بشید اینسرتش اگه تکست باکس ContactIdرااستفاده کنم کارمیکنه ولی برای آپدیت هیچ کاری نمی کنه این فایلی که میزارم ازتکست باکس استفاده نکردم و اینسرتشم مشکل داره دوست دارم یادبگیرم چطوری میشه این کارو بااستفاده از گرید انجام بدهم اگه لطف کنید و بهم بگیدمشکلم کجاست ممنونتون میشم...
    فایل های ضمیمه فایل های ضمیمه

  19. #19
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    776

    نقل قول: چگونگی نوشتن UpdateوInsertدریک Button

    سلام
    کدهای اصلاح شده را ضمیمه میکنم . سعی کردم کمترین تغییرات را در کدهاتون اعمال کنم (و به روش کدنویسی خودتون )
    فایل های ضمیمه فایل های ضمیمه

  20. #20

    نقل قول: چگونگی نوشتن UpdateوInsertدریک Button

    نقل قول نوشته شده توسط *Ashrafi* مشاهده تاپیک
    سلام
    ممنون از پاسختون دوست عزیز
    اما از خط آخر
    cmd2.Dispose();

    error می گیره اما اونم که جاش را تغییر دادم بازم همون خطا دفعه پیش را می دهد متاسفانه
    خطا به خاطر این هست که cmd2 در بلاک try تعریف شده و در بلاک finally معتبر نیست. به این صورت اصلاح کنید
                OleDbCommand cmd2;
    if (txtid.Text=="")
    {
    try
    {
    cmd2 = new OleDbCommand("insert into tblContact(FirstName,LastName,Phone,Mobile,Address ) VALUES(@FirstName,@LastName,@Phone,@Mobile,@Addres s)", myconnection);
    cmd2.Parameters.AddWithValue("@FirstName", txtName.Text.Trim());
    cmd2.Parameters.AddWithValue("@LastName", txtFamily.Text.Trim());
    cmd2.Parameters.AddWithValue("@Phone", txtPhone.Text.Trim());
    cmd2.Parameters.AddWithValue("@Mobile", txtMobile.Text.Trim());
    cmd2.Parameters.AddWithValue("@Address", txtAddress.Text.Trim());
    myconnection.Open();
    cmd2.ExecuteNonQuery();
    myconnection.Close();
    MessageBox.Show("!داده ها با موفقیت ثبت شد", "ثبت داده");
    }
    catch (Exception err)
    {
    MessageBox.Show("عملیات انجام نشد" + err.Message, "خطا", MessageBoxButtons.OK);
    }
    finally
    {
    cmd2.Dispose();
    myconnection.Close();
    }
    }
    else
    {
    try
    {
    cmd2 = new OleDbCommand("UPDATE tblContact set FirstName=@FirstName,LastName=@LastName,Phone=@Pho ne,Mobile=@Mobile,Address=@Address where IdContact=@IdContact", myconnection);
    cmd2.Parameters.AddWithValue("@IdContact", Convert.ToInt32(txtid.Text.Trim()));
    cmd2.Parameters.AddWithValue("@FirstName", txtName.Text.Trim());
    cmd2.Parameters.AddWithValue("@LastName", txtFamily.Text.Trim());
    cmd2.Parameters.AddWithValue("@Phone", txtPhone.Text.Trim());
    cmd2.Parameters.AddWithValue("@Mobile", txtMobile.Text.Trim());
    cmd2.Parameters.AddWithValue("@Address", txtAddress.Text.Trim());
    myconnection.Open();
    cmd2.ExecuteNonQuery();
    MessageBox.Show("عملیات انجام شد", "کاربر گرامی", MessageBoxButtons.OK, MessageBoxIcon.Information);
    this.tblContactTableAdapter.Fill(this.databaseCont actDataSet.tblContact);
    }
    catch (Exception err)
    {
    MessageBox.Show("عملیات انجام نشد" + err.Message, "خطا", MessageBoxButtons.OK);
    }
    finally
    {
    cmd2.Dispose();
    myconnection.Close();
    }
    }
    آخرین ویرایش به وسیله Mahmoud.Afrad : جمعه 13 مرداد 1391 در 00:23 صبح

  21. #21

    نقل قول: چگونگی نوشتن UpdateوInsertدریک Button

    از کمکتون و وقتی که گذاشتین واقعاً ممنونم دوستان
    من تازه کارم کداتون کار کرد اما می خواستم ببینم اگه بخواهم بدون استفاده از تکست باکس همین کار را بکنم چی بنویسم و اینکه بعد add کردن به سطر خالی giridview برود چی بنویسم؟ ممنون می شم کمکم کنید
    بازم ممنونم از کمکتون
    من این کدها را نوشتم اما سطر جدید را انتخاب نمی کند!
    آخرین ویرایش به وسیله *Ashrafi* : شنبه 31 تیر 1391 در 09:41 صبح

  22. #22

    نقل قول: چگونگی نوشتن UpdateوInsertدریک Button

     DataGridViewRow row = dataGridView1.Rows[dataGridView1.Rows.Count - 1];
    row.Cells[0].Selected= true;

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

  1. پاسخ: 1
    آخرین پست: دوشنبه 03 شهریور 1393, 12:50 عصر
  2. چگونگی تشخیص محل مکان نما در یک Text Box
    نوشته شده توسط vbapr2005 در بخش VB.NET
    پاسخ: 5
    آخرین پست: سه شنبه 06 فروردین 1387, 15:17 عصر
  3. چگونگی نوشتن برنامه تحت شبکه در vb6
    نوشته شده توسط ali_habibi1384 در بخش برنامه نویسی در 6 VB
    پاسخ: 8
    آخرین پست: سه شنبه 08 آبان 1386, 15:32 عصر
  4. update سه جدول در یک فرم
    نوشته شده توسط **sara** در بخش Classic ASP
    پاسخ: 4
    آخرین پست: یک شنبه 28 مرداد 1386, 05:26 صبح
  5. چگونگی جمع زدن دو ردیف در یک Grid
    نوشته شده توسط vahidm در بخش برنامه نویسی در 6 VB
    پاسخ: 4
    آخرین پست: شنبه 18 آذر 1385, 05:20 صبح

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

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