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

نام تاپیک: مشکل در یک حلقه For و دستور Insert To SQL

  1. #1
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    مشکل در یک حلقه For و دستور Insert To SQL

    سلام و خسته نباشید .

    در جدولم ( Patients ) یک ستون دارم به اسم AGE . از اسمش معلومه که یعنی سن . بیمارانی که پذیرش میشن در نرم افزار من یک سن بهشون تخصیص داده .

    حالا من می خواهم با یک حلقه For لیست تمام بیماران رو داشته باشم و اگه سنشون بیشتر از مثلا 50 سال بود ، یک دستور INSERT اجرا بشه .



    cmd.Connection = cnn;
    cnn.Open();
    cmd.CommandText = "Select COUNT(*) AS cnt From patients WHERE sex = 'مرد' AND reg_tarikh_shamsi between '" + uc1.VDate + "' AND '" + uc2.VDate + "'";
    cmd.Parameters.Clear();
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataSet ds = new DataSet();
    da.Fill(ds);
    string cnt = Convert.ToString(ds.Tables[0].Rows[0]["cnt"]);
    int countz = Convert.ToInt32(cnt);
    cnn.Close();
    ////////
    cmd.Connection = cnn;
    cnn.Open();
    cmd.CommandText = "Select id,age From patients WHERE sex = 'مرد' AND reg_tarikh_shamsi between '" + uc1.VDate + "' AND '" + uc2.VDate + "'";
    cmd.Parameters.Clear();
    SqlDataAdapter da22 = new SqlDataAdapter(cmd);
    DataSet ds22 = new DataSet();
    da22.Fill(ds22);
    cnn.Close();

    del_navar();

    try
    {
    for (int j = 0; j < countz; j++)
    {
    PID = Convert.ToString(ds22.Tables[0].Rows[j]["id"]);
    int age = Convert.ToInt32(Convert.ToString(ds22.Tables[0].Rows[j]["age"]));

    if (age == 40 || age > 40)
    {
    cmd.Connection = cnn;
    cnn.Open();
    cmd.CommandText = "Insert INTO other_usage (patientid,other_id,numberz) VALUES (@patientid,@other_id,@numberz)";
    cmd.Parameters.Clear();
    cmd.Parameters.AddWithValue("@patientid", PID);
    cmd.Parameters.AddWithValue("@other_id", 3);
    cmd.Parameters.AddWithValue("@numberz", 1);
    cmd.ExecuteNonQuery();
    cnn.Close();
    }
    }
    MessageBox.Show("اضافه شد");
    }
    catch
    {

    }


    این تیکه کد من هست . اما متاسفانه درست کار نمی کنه و رکورد هایی رو هم دارم که سنشون کمتر از 50 هست ( که در تیکه برنامه بالا قید کردم ) بازم دستور INSERT براشون انجام شده

    ممنون میشم کمک کنید

  2. #2
    کاربر دائمی آواتار ordebehesht
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    یه گوشه دنج از این دنیا
    پست
    845

    نقل قول: مشکل در یک حلقه For و دستور Insert To SQL

    بنده خوب خدا یبارکی اونایی که سنشون بالای 50 هستش رو انتخواب کن و بعد داده مورد نظر تو وارد کن نمی خواد همه رو انتخواب کنی

  3. #3
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    نقل قول: مشکل در یک حلقه For و دستور Insert To SQL

    نقل قول نوشته شده توسط ordebehesht مشاهده تاپیک
    بنده خوب خدا یبارکی اونایی که سنشون بالای 50 هستش رو انتخواب کن و بعد داده مورد نظر تو وارد کن نمی خواد همه رو انتخواب کنی
    نظر بسیار خوبی بود . راست میگی . اشتباه کردم . مرسی دوست عزیز


    راستی آواتارت خیلی قشنگه مثل تیمش !

  4. #4
    کاربر دائمی آواتار ordebehesht
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    یه گوشه دنج از این دنیا
    پست
    845

    نقل قول: مشکل در یک حلقه For و دستور Insert To SQL

    مرسی اگه طرفداره یووه هستی به این سایتها یه نگاه بنداز
    www.juventus.ir
    www.juventusfc.ir

  5. #5
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    نقل قول: مشکل در یک حلقه For و دستور Insert To SQL

    عزیز کدم رو به این حالت تغییر دادم


    cmd.Connection = cnn;
    cnn.Open();
    cmd.CommandText = "Select COUNT(*) AS cnt From patients WHERE sex = 'مرد' AND age > 39 AND reg_tarikh_shamsi between '" + uc1.VDate + "' AND '" + uc2.VDate + "'";
    cmd.Parameters.Clear();
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataSet ds = new DataSet();
    da.Fill(ds);
    string cnt = Convert.ToString(ds.Tables[0].Rows[0]["cnt"]);
    int countz = Convert.ToInt32(cnt);
    cnn.Close();
    ////////
    cmd.Connection = cnn;
    cnn.Open();
    cmd.CommandText = "Select id,age From patients WHERE sex = 'مرد' AND age > 39 AND reg_tarikh_shamsi between '" + uc1.VDate + "' AND '" + uc2.VDate + "'";
    cmd.Parameters.Clear();
    SqlDataAdapter da22 = new SqlDataAdapter(cmd);
    DataSet ds22 = new DataSet();
    da22.Fill(ds22);
    cnn.Close();

    del_navar();


    for (int j = 0; j < countz; j++)
    {
    PID = Convert.ToString(ds22.Tables[0].Rows[j]["id"]);

    cmd.Connection = cnn;
    cnn.Open();
    cmd.CommandText = "Insert INTO other_usage (patientid,other_id,numberz) VALUES (@patientid,@other_id,@numberz)";
    cmd.Parameters.Clear();
    cmd.Parameters.AddWithValue("@patientid", PID);
    cmd.Parameters.AddWithValue("@other_id", 3);
    cmd.Parameters.AddWithValue("@numberz", 1);
    cmd.ExecuteNonQuery();
    cnn.Close();
    }
    MessageBox.Show("اضافه شد");



    بازم الان رکوردی دارم که سنش بیشتر از 60 سال هست ، اما براش INSERT انجام نشده !!

  6. #6
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    نقل قول: مشکل در یک حلقه For و دستور Insert To SQL

    ببین کدم رو کلا تغییر دادم و بهینه ترش کردم


    cmd.Connection = cnn;
    cnn.Open();
    cmd.CommandText = "INSERT INTO other_usage(patientid,other_id,numberz) Select P.id,3,1 FROM patients P WHERE P.sex = 'زن' AND P.age >= 50";
    cmd.ExecuteNonQuery();
    cnn.Close();


    کلا گفتم هرکی بیشتر از اون سن هست ، براش یک INSERT انجام بشه . در واقع یک کوری رو Run می کنم . اما بازم کسی رو دارم فیلد AGE برابر 60 هست ، اما براش Insert انجام نمیشه

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

    نقل قول: مشکل در یک حلقه For و دستور Insert To SQL

    سلام. دستوری رو که در پست 6 گذاشتی اجرا میشه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
    25 درصد از هر دستور رو نوشتی. انتظار که نداری دستور اجرا بشه؟

  8. #8
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    نقل قول: مشکل در یک حلقه For و دستور Insert To SQL


    SqlConnection cnn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = cnn;
    cnn.Open();
    cmd.CommandText = "INSERT INTO other_usage(patientid,other_id,numberz) Select P.id,3,1 FROM patients P WHERE P.sex = 'زن' AND P.age >= 50";
    cmd.ExecuteNonQuery();
    cnn.Close();




    شما اینجوری فرضش کنم . !! . اون 2 خط اول رو قسمت partial تعریف کردم

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

    نقل قول: مشکل در یک حلقه For و دستور Insert To SQL

    من هنوز دستور insert ای که values نداره ندیدم.شما چطور مقدار درج می کنید؟

  10. #10
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    نقل قول: مشکل در یک حلقه For و دستور Insert To SQL

    نقل قول نوشته شده توسط mohammaddou مشاهده تاپیک
    من هنوز دستور insert ای که values نداره ندیدم.شما چطور مقدار درج می کنید؟

    عزیز دلم با Select دیگه . مقدار P.id نماینده جدول Patients و فیلد id هست . 3 و 1 هم که یک مقدار ثابت هستند .

    پس باید اون رکورد هایی که در WHERE شرط شدند رو Select کنه و بریزنه توی جدول other_usage

    Insert into tbl1 (field1,field2,field3) Select a, b , c From tbl3


    این یک مثاله دیگه !

  11. #11
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: مشکل در یک حلقه For و دستور Insert To SQL

    نقل قول نوشته شده توسط dev-dev-dev مشاهده تاپیک
    ببین کدم رو کلا تغییر دادم و بهینه ترش کردم


    cmd.Connection = cnn;
    cnn.Open();
    cmd.CommandText = "INSERT INTO other_usage(patientid,other_id,numberz) Select P.id,3,1 FROM patients P WHERE P.sex = 'زن' AND P.age >= 50";
    cmd.ExecuteNonQuery();
    cnn.Close();


    کلا گفتم هرکی بیشتر از اون سن هست ، براش یک INSERT انجام بشه . در واقع یک کوری رو Run می کنم . اما بازم کسی رو دارم فیلد AGE برابر 60 هست ، اما براش Insert انجام نمیشه
    عجیبه ولی شما مطمئن هستین که شخصی که سنش 60 هست جنسیتش زنه ؟؟؟
    شاید مرد باشه ها دقت کنید!!!
    آخه تا جایی که من بلدم کوئری تون باید درست باشه و نباید مشکلی داشته باشه.
    اینو چک کنید نتیجه رو اطلاع بدین...

  12. #12
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    نقل قول: مشکل در یک حلقه For و دستور Insert To SQL

    یک مشکل جزیی بود که حل شد . یک تابع برای حذف کردن بعضی رکورد ها استفاده می کردم که اشتباهی اونجا هم لود شوده بود .

    بعضی وقتا مغز آدم دیگه جواب نمیده . همیشه جلوی چشمم بود ، اما نمی دیدمش .

    مرسی از همه عزیزان . اما بازم ممنون از دوستان که کد های بهینه تر و سالم تر و مطمعن تری رو به من یاد دادند !

  13. #13

    نقل قول: مشکل در یک حلقه For و دستور Insert To SQL

    نقل قول نوشته شده توسط mohammaddou مشاهده تاپیک
    من هنوز دستور insert ای که values نداره ندیدم.شما چطور مقدار درج می کنید؟
    با سلكت بهش مقدار داده.مطالعه كنين پيدا ميكنين! با اين حساب اينم يه نمونه ديگش :
    Insert Into TableName Select * From TableName2

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

    نقل قول: مشکل در یک حلقه For و دستور Insert To SQL

    نقل قول نوشته شده توسط ali_habibi1384 مشاهده تاپیک
    با سلكت بهش مقدار داده.مطالعه كنين پيدا ميكنين! با اين حساب اينم يه نمونه ديگش :
    Insert Into TableName Select * From TableName2
    راستش تا اون لحظه ای که این تاپیک رو ببینم هیچوقت ندیده بودم. حرف شما منو یاد این جمله انداخت که بزرگی گفته :
    "باید زیاد مطالعه کنید تا بدانید که هیچ نمیدانید"
    بهرحال از دقت و توجه شما ممنونم.

  15. #15
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    نقل قول: مشکل در یک حلقه For و دستور Insert To SQL

    نقل قول نوشته شده توسط mohammaddou مشاهده تاپیک
    راستش تا اون لحظه ای که این تاپیک رو ببینم هیچوقت ندیده بودم. حرف شما منو یاد این جمله انداخت که بزرگی گفته :
    "باید زیاد مطالعه کنید تا بدانید که هیچ نمیدانید"
    بهرحال از دقت و توجه شما ممنونم.
    خواهش می کنم ، اصل و پایه فروم این هست که با تبادل اطلاعات چیز یاد بگیریم .

    ممنونم از توجه شما و سایر دوستان که منو کمک کردند !

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

  1. تبدیل حلقه For به دستور If
    نوشته شده توسط fox2030 در بخش VB.NET
    پاسخ: 3
    آخرین پست: دوشنبه 30 مرداد 1391, 21:39 عصر
  2. سوال: مشکل در یک حلقه For و یک IF
    نوشته شده توسط NasimBamdad در بخش C#‎‎
    پاسخ: 15
    آخرین پست: دوشنبه 26 تیر 1391, 18:25 عصر
  3. سوال: ایجاد حلقه با انجام دستور insert
    نوشته شده توسط saeed_r67 در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: دوشنبه 30 خرداد 1390, 12:48 عصر
  4. سوال: مشکل در اجرای حلقه for
    نوشته شده توسط mohammad-seifi در بخش Java SE : نگارش استاندارد جاوا
    پاسخ: 5
    آخرین پست: دوشنبه 14 تیر 1389, 22:38 عصر
  5. سوال: مشکل با یه مدل پیچیده از دستور insert -
    نوشته شده توسط DotNet_King در بخش SQL Server
    پاسخ: 2
    آخرین پست: جمعه 11 مرداد 1387, 03:51 صبح

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

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