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

نام تاپیک: مشکل ذخیره کردن اطلاعات دیتاگرید ویو در sql

  1. #1

    مشکل ذخیره کردن اطلاعات دیتاگرید ویو در sql

    سلام بچه ها من دارم برنامه حسابداری برای یک فروشگاه مینویسم...
    در قسمت صندوق فروشگاه کاربر کالای خودشو سرچ میزنه و انتخاب میکنه ، هر تعداد کالا که انتخاب کنه درون یک دیتاگریدویو ردیف به ردیف( نام کالا ، تعداد ، قیمت فروش) میشینه ،
    وقتی کاربر دکمه تسویه میزنه کل اطلاعات دیتاگرید ویو رو ردیف به ردیف درون sql ذخیره میکنه .!

    حالا مشکلم اینه :

    میخام وقتی تسویه زد و ذخیره کرد بیاد تک تک کالا ها به اندازه تعدادی که درون صندوق (دیتاگریدویو ) وارد کرده و فروخته از انبارش کم شه .

    کد ذخیرمو اینجوری نوشتم :


    SqlConnection M = new SqlConnection("Data Source=.;Initial Catalog=AdelShope;Integrated Security=True");
    M.Open();
    int t = dataGridView1.Rows.Count;
    for (int i = 0; i <= t - 1; i++)
    {


    String ss = string.Format("insert into sandogh values(N'{0}','{1}','{2}','{3}','{4}')", dataGridView1.Rows[i].Cells[0].Value, dataGridView1.Rows[i].Cells[1].Value, dataGridView1.Rows[i].Cells[2].Value, dataGridView1.Rows[i].Cells[3].Value, dataGridView1.Rows[i].Cells[4].Value);
    SqlCommand comm = new SqlCommand(ss, M);
    comm.ExecuteNonQuery();



    string conn = (@"Data Source=.;Initial Catalog=AdelShope;Integrated Security=True");
    var com = new SqlCommand("SELECT tedad FROM kala WHERE name LIKE N'%" + dataGridView1.Rows[i].Cells[0].Value + "%'", M);
    var h = com.ExecuteScalar();
    var result = Convert.ToString(Convert.ToInt32(h) - Convert.ToInt32(dataGridView1.Rows[i].Cells[1].Value));
    SqlConnection objsqlconn = new SqlConnection(conn);
    objsqlconn.Open();


    SqlCommand objcmd = new SqlCommand("Update kala set tedad=@tedad where name LIKE N'%" + dataGridView1.Rows[i].Cells[0].Value + "%'", objsqlconn);
    objcmd.Parameters.AddWithValue("@tedad", result);
    objcmd.ExecuteNonQuery();


    }


    فرم ذخیره میشه ولی تعداد فقط ردیف اول درست کم میکنه و بقیه ردیف ها هم مثل ردیف اول تغییر میده( تعداد همه کالا ها در انبار یکی میشه و خراب میشه...) !!!

    لطفا راهنمایی کنید چجوری کد بنویسم که ردیف به ردیف با کالا درون انبار چک کنه و جداگانه تعداد وارد شده در صندوق(دیتاگریدویو) از تعداد کالا در انبار کم کنه ؟؟؟

    تشکر

  2. #2

    نقل قول: مشکل ذخیره کردن اطلاعات دیتاگرید ویو در sql

    کسی نبود جواب بده ؟
    کارم گیره بچه ها

  3. #3

    نقل قول: مشکل ذخیره کردن اطلاعات دیتاگرید ویو در sql



    for (int i = 0; i <= t - 1; i++)

    {

    DataGridViewRow row = dataGridView1.Rows[i];


    value custom = row.Value.ToString();// row.Cells[1].Value;
    ....

  4. #4

    نقل قول: مشکل ذخیره کردن اطلاعات دیتاگرید ویو در sql

    شما ابتدا متغیرهات رو از یک سطر دیتا گرید بگیر و سپس پس از محاسبه متغیرها، در دیتابیس ذخیرشون کن

  5. #5

    نقل قول: مشکل ذخیره کردن اطلاعات دیتاگرید ویو در sql

    نقل قول نوشته شده توسط saeidfar مشاهده تاپیک



    for (int i = 0; i <= t - 1; i++)

    {

    DataGridViewRow row = dataGridView1.Rows[i];


    value custom = row.Value.ToString();// row.Cells[1].Value;
    ....

    میشه بیشتر توضیح بدین ؟

  6. #6

    نقل قول: مشکل ذخیره کردن اطلاعات دیتاگرید ویو در sql

    نقل قول نوشته شده توسط saeidfar مشاهده تاپیک
    شما ابتدا متغیرهات رو از یک سطر دیتا گرید بگیر و سپس پس از محاسبه متغیرها، در دیتابیس ذخیرشون کن
    بازم نمیشه ، ظاهرا مشکل در همین کد های متغیره و کم کردن تعداد از کالاها...! متغیر تنها هم که میزارم خراب کم میکنه و بجای کم کردن همون تعداد میاد همرو به یه اندازه کم میکنه!

  7. #7
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    کرج
    پست
    77

    نقل قول: مشکل ذخیره کردن اطلاعات دیتاگرید ویو در sql

    من از این روش استفاده می کنم شاید به کارتون بیاد :


    for (int i = 0; i < dataGridView1.Rows.Count; i++)
    {
    SqlConnection con = new SqlConnection(DataAccess.DataSource.ConnectionStri ng);
    SqlCommand cmd = new SqlCommand("INSERT INTO Persons (SerialID,FirstName,LastName,FullName,BirthCertifi cateNo,NationalCode,BirthDate,BirthLoc,MariageStat us,MilitaryStatus,Description,Institute) "
    + "values (@SerialID,@FirstName,@LastName,@FullName,@BirthCe rtificateNo,@NationalCode,@BirthDate,@BirthLoc,@Ma riageStatus,@MilitaryStatus,@Description,@Institut e)", con);
    cmd.Parameters.AddWithValue("@SerialID", dataGridView1.Rows[i].Cells[0].Value);
    cmd.Parameters.AddWithValue("@FirstName", dataGridView1.Rows[i].Cells[1].Value);
    cmd.Parameters.AddWithValue("@LastName", dataGridView1.Rows[i].Cells[2].Value);
    cmd.Parameters.AddWithValue("@FullName", dataGridView1.Rows[i].Cells[3].Value);
    cmd.Parameters.AddWithValue("@BirthCertificateNo", dataGridView1.Rows[i].Cells[4].Value);
    cmd.Parameters.AddWithValue("@NationalCode", dataGridView1.Rows[i].Cells[5].Value);
    cmd.Parameters.AddWithValue("@BirthDate", dataGridView1.Rows[i].Cells[6].Value);
    cmd.Parameters.AddWithValue("@BirthLoc", dataGridView1.Rows[i].Cells[7].Value);
    cmd.Parameters.AddWithValue("@MariageStatus", dataGridView1.Rows[i].Cells[8].Value);
    cmd.Parameters.AddWithValue("@MilitaryStatus", dataGridView1.Rows[i].Cells[9].Value);
    cmd.Parameters.AddWithValue("@Description", dataGridView1.Rows[i].Cells[10].Value);
    cmd.Parameters.AddWithValue("@Institute", dataGridView1.Rows[i].Cells[10].Value);
    con.Open();
    cmd.ExecuteNonQuery();
    con.Close();
    MessageBox.Show("Added successfully!");


  8. #8

    نقل قول: مشکل ذخیره کردن اطلاعات دیتاگرید ویو در sql

    یه عکس از فرم و اطلاعاتی که وارد کردین داخلش، اینجا بذارین

  9. #9

    نقل قول: مشکل ذخیره کردن اطلاعات دیتاگرید ویو در sql

    نقل قول نوشته شده توسط mr.sirwan مشاهده تاپیک
    یه عکس از فرم و اطلاعاتی که وارد کردین داخلش، اینجا بذارین
    عکس فرم :
    25615615.jpg

    کد مربوطه :

    string conn = (@"Data Source=.;Initial Catalog=AdelShope;Integrated Security=True");
    var com = new SqlCommand("SELECT tedad FROM kala WHERE ID LIKE N'%" + dataGridView1.Rows[i].Cells[0].Value + "%'", M);
    var h = com.ExecuteScalar();
    var result = Convert.ToString(Convert.ToInt32(h) - Convert.ToInt32(dataGridView1.Rows[i].Cells[2].Value));
    SqlConnection objsqlconn = new SqlConnection(conn);
    objsqlconn.Open();
    SqlCommand objcmd = new SqlCommand("Update kala set tedad=@tedad where ID LIKE N'%" + dataGridView1.Rows[i].Cells[0].Value + "%'", objsqlconn);
    objcmd.Parameters.AddWithValue("@tedad", result);
    objcmd.ExecuteNonQuery();



    دوست عزیز کد های ذخیرم مشکلی نداره درسته فقط قسمتی که باید تعداد وارد شده رو از تعداد کل کالا در انبار کم کنه خراب کم میکنه ( یعنی وقتی مثلا کالایی 4 تا فروخت از موجودی کل کالا ها 4 تا کم کنه نه فقط همون کالا).
    میاد سطر اول درست کم میکنه و کاره بقیه سطر ها نداره ! همه موجودی های انبار مثل همون همون تغییر میده....
    آخرین ویرایش به وسیله pure_love : چهارشنبه 01 خرداد 1398 در 21:38 عصر

  10. #10

    نقل قول: مشکل ذخیره کردن اطلاعات دیتاگرید ویو در sql

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


    for (int i = 0; i < dataGridView1.Rows.Count; i++)
    {
    SqlConnection con = new SqlConnection(DataAccess.DataSource.ConnectionStri ng);
    SqlCommand cmd = new SqlCommand("INSERT INTO Persons (SerialID,FirstName,LastName,FullName,BirthCertifi cateNo,NationalCode,BirthDate,BirthLoc,MariageStat us,MilitaryStatus,Description,Institute) "
    + "values (@SerialID,@FirstName,@LastName,@FullName,@BirthCe rtificateNo,@NationalCode,@BirthDate,@BirthLoc,@Ma riageStatus,@MilitaryStatus,@Description,@Institut e)", con);
    cmd.Parameters.AddWithValue("@SerialID", dataGridView1.Rows[i].Cells[0].Value);
    cmd.Parameters.AddWithValue("@FirstName", dataGridView1.Rows[i].Cells[1].Value);
    cmd.Parameters.AddWithValue("@LastName", dataGridView1.Rows[i].Cells[2].Value);
    cmd.Parameters.AddWithValue("@FullName", dataGridView1.Rows[i].Cells[3].Value);
    cmd.Parameters.AddWithValue("@BirthCertificateNo", dataGridView1.Rows[i].Cells[4].Value);
    cmd.Parameters.AddWithValue("@NationalCode", dataGridView1.Rows[i].Cells[5].Value);
    cmd.Parameters.AddWithValue("@BirthDate", dataGridView1.Rows[i].Cells[6].Value);
    cmd.Parameters.AddWithValue("@BirthLoc", dataGridView1.Rows[i].Cells[7].Value);
    cmd.Parameters.AddWithValue("@MariageStatus", dataGridView1.Rows[i].Cells[8].Value);
    cmd.Parameters.AddWithValue("@MilitaryStatus", dataGridView1.Rows[i].Cells[9].Value);
    cmd.Parameters.AddWithValue("@Description", dataGridView1.Rows[i].Cells[10].Value);
    cmd.Parameters.AddWithValue("@Institute", dataGridView1.Rows[i].Cells[10].Value);
    con.Open();
    cmd.ExecuteNonQuery();
    con.Close();
    MessageBox.Show("Added successfully!");

    دوست عزیز کد های ذخیرم مشکلی نداره درسته فقط قسمتی که باید تعداد وارد شده رو از تعداد کل کالا در انبار کم کنه خراب کم میکنه ( یعنی وقتی مثلا کالایی 4 تا فروخت از موجودی کل کالا ها 4 تا کم کنه نه فقط همون کالا).
    میاد سطر اول درست کم میکنه و کاره بقیه سطر ها نداره ! همه موجودی های انبار مثل همون همون تغییر میده....

  11. #11

    نقل قول: مشکل ذخیره کردن اطلاعات دیتاگرید ویو در sql

    نقل قول نوشته شده توسط saeidfar مشاهده تاپیک
    شما ابتدا متغیرهات رو از یک سطر دیتا گرید بگیر و سپس پس از محاسبه متغیرها، در دیتابیس ذخیرشون کن
    دوست عزیز کد های ذخیرم مشکلی نداره درسته فقط قسمتی که باید تعداد وارد شده رو از تعداد کل کالا در انبار کم کنه خراب کم میکنه ( یعنی وقتی مثلا کالایی 4 تا فروخت از موجودی کل کالا ها 4 تا کم کنه نه فقط همون کالا).
    میاد سطر اول درست کم میکنه و کاره بقیه سطر ها نداره ! همه موجودی های انبار مثل همون همون تغییر میده....

    لطفا اگه میتونید کمکم کنید کارم خیلی گیره
    تشکر

  12. #12

    نقل قول: مشکل ذخیره کردن اطلاعات دیتاگرید ویو در sql

    الان شما مطمئنی این کد درست کار میکنه؟
    var result = Convert.ToString(Convert.ToInt32(h) - Convert.ToInt32(dataGridView1.Rows[i].Cells[1].Value));
    اصلا توی این خط شما باید خطا داشته باشی، شما داری مقدار سلول یکم رو که همون ستون نام کالا هست رو از مقدار کل کالا کم میکنی

    ویرایش:
    بعد شما توی این خط:
    "SELECT tedad FROM kala WHERE name LIKE N'%" + dataGridView1.Rows[i].Cells[0].Value + "%'"

    داری کد کالا رو برای شرط نام کالا استفاده میکنی

    و باز هم اینجا:
    "Update kala set tedad=@tedad where name LIKE N'%" + dataGridView1.Rows[i].Cells[0].Value + "%'"
    با این اوصاف فک کنم خودت متوجه مشکل شدی و نیازی نیست که بگم چطوری اینارو برطرف کنی، اگه بازم متوجه نشدی بگو
    آخرین ویرایش به وسیله mr.sirwan : چهارشنبه 01 خرداد 1398 در 21:24 عصر

  13. #13

    نقل قول: مشکل ذخیره کردن اطلاعات دیتاگرید ویو در sql

    نقل قول نوشته شده توسط mr.sirwan مشاهده تاپیک
    الان شما مطمئنی این کد درست کار میکنه؟
    var result = Convert.ToString(Convert.ToInt32(h) - Convert.ToInt32(dataGridView1.Rows[i].Cells[1].Value));
    اصلا توی این خط شما باید خطا داشته باشی، شما داری مقدار سلول یکم رو که همون ستون نام کالا هست رو از مقدار کل کالا کم میکنی

    ویرایش:
    بعد شما توی این خط:
    "SELECT tedad FROM kala WHERE name LIKE N'%" + dataGridView1.Rows[i].Cells[0].Value + "%'"

    داری کد کالا رو برای شرط نام کالا استفاده میکنی

    و باز هم اینجا:
    "Update kala set tedad=@tedad where name LIKE N'%" + dataGridView1.Rows[i].Cells[0].Value + "%'"
    با این اوصاف فک کنم خودت متوجه مشکل شدی و نیازی نیست که بگم چطوری اینارو برطرف کنی، اگه بازم متوجه نشدی بگو

    ببخشید دوست عزیز کد اشتباه کپی کردم !
    کد هام اینه :


    string conn = (@"Data Source=.;Initial Catalog=AdelShope;Integrated Security=True");
    var com = new SqlCommand("SELECT tedad FROM kala WHERE ID LIKE N'%" + dataGridView1.Rows[i].Cells[0].Value + "%'", M);
    var h = com.ExecuteScalar();
    var result = Convert.ToString(Convert.ToInt32(h) - Convert.ToInt32(dataGridView1.Rows[i].Cells[2].Value));
    SqlConnection objsqlconn = new SqlConnection(conn);
    objsqlconn.Open();
    SqlCommand objcmd = new SqlCommand("Update kala set tedad=@tedad where ID LIKE N'%" + dataGridView1.Rows[i].Cells[0].Value + "%'", objsqlconn);
    objcmd.Parameters.AddWithValue("@tedad", result);
    objcmd.ExecuteNonQuery();


    کد هام همه جای برنامه که اطلاعات درون تکست باکس هست درست کار میکنه فقط اینکه میخاد اطلاعات از دیتاگرید ویو برداره خراب کار میکنه...!

  14. #14

    نقل قول: مشکل ذخیره کردن اطلاعات دیتاگرید ویو در sql

    شما فعلا اینارو:
    ID LIKE N'%" + dataGridView1.Rows[i].Cells[0].Value + "%'"
    تبدیل کن به این:
    ID = '" + dataGridView1.Rows[i].Cells[0].Value + "'"
    نتیجه رو بگو

  15. #15

    نقل قول: مشکل ذخیره کردن اطلاعات دیتاگرید ویو در sql

    نقل قول نوشته شده توسط mr.sirwan مشاهده تاپیک
    شما فعلا اینارو:
    ID LIKE N'%" + dataGridView1.Rows[i].Cells[0].Value + "%'"
    تبدیل کن به این:
    ID = '" + dataGridView1.Rows[i].Cells[0].Value + "'"
    نتیجه رو بگو
    مرسییییییییی دوست عزیز مشکلم حل شد ، خیلی تشکر خیلی کار گیر بود...
    عزیز یه مشکل دیگه هم دارم :
    وقتی اطلاعات درون دیتاگرید ویو ذخیره میکنم یه ردیف خالی هم الکی در دیتابیس ذخیره میکنه ،! شبیه عکس زیر :

    123123213.jpg

    کد های ذخیرم :

    SqlConnection M = new SqlConnection("Data Source=.;Initial Catalog=AdelShope;Integrated Security=True");
    M.Open();
    int t = dataGridView1.Rows.Count;
    for (int i = 0; i <= t - 1; i++)
    {
    String ss = string.Format("insert into sandogh values(N'{0}','{1}','{2}','{3}','{4}')", dataGridView1.Rows[i].Cells[1].Value, dataGridView1.Rows[i].Cells[2].Value, dataGridView1.Rows[i].Cells[3].Value, dataGridView1.Rows[i].Cells[4].Value, dataGridView1.Rows[i].Cells[5].Value);
    SqlCommand comm = new SqlCommand(ss, M);
    comm.ExecuteNonQuery();
    }


    چیکارش کنم اون ردیف خالی آخری ذخیره نکنه !!؟؟

  16. #16
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,909

    نقل قول: مشکل ذخیره کردن اطلاعات دیتاگرید ویو در sql

    فکر میکنم خصوصیت AllowUserToAddRows رو False نکردید
    اگر اطلاعات رو از طریق خود دیتاگرید اضافه میکنید در حلقه t - 1 رو به t - 2 تغییر بدید
    لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
    قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
    قوانین پرسش های دانشجویی
    برای درست وارد شدن کد در قالب C#‎‎‎ سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C#‎‎‎ منتفل کنید
    نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها

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

  1. پاسخ: 4
    آخرین پست: شنبه 24 فروردین 1398, 12:59 عصر
  2. سوال: انتقال یک پیام از کنترلر به ویو با کمک ویو دیتا یا ویو بق
    نوشته شده توسط kamran_14 در بخش ASP.NET MVC
    پاسخ: 3
    آخرین پست: چهارشنبه 12 اسفند 1394, 16:50 عصر
  3. پاسخ: 0
    آخرین پست: یک شنبه 31 فروردین 1393, 17:52 عصر
  4. اتصال دیتای سورس گریدویو داخلی به تکس باکس گرید ویو اصلی
    نوشته شده توسط mostafa_tak2000 در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: جمعه 04 اسفند 1391, 13:30 عصر

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

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