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

نام تاپیک: چرا دستور زیر try نیمشه؟

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

    چرا دستور زیر try نیمشه؟

    سلام دوستای خوبم
    یک سوال داشتم که شاید بدرد خیلیا بخوره جوابش

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

    ایده ای که به ذهن من رسید این بود که برنامه بره تو دیتابیس رو چک کنه یک فیلد flag تعریف کردم که null هستش. وقتی کاربر عملیات پرداخت رو انجام میده این فیلد flag =true بشه . و بار بعدی اگه اشتباهی همین مشخصات خواست عملیات پرداخت رو انجام بده ابتدا فیلد flag چک بشه اگه مخالف true بود ثبتش کنه و flag =trueبشه .

    این نظر من بودش. برنامشم نوشتم ولی اصلا try نیمشه . یعنی مشکل اینجاست که من تو عملیات try catch یکم مشکل دارم.
    میشه شما راهنماییم کنید چرا برنامه در مرحله try متوقف میشه و هیچ کاری انجام نمشه؟ شما ایده ای دیگر برای این کار دارید؟
    اینم کدش هست:



    private void shahriyeh()
    {
    try
    {
    string flag =" select flag from shahriyeh where flag<> true ";
    var dr = bnk.exereader(flag);
    if (dr.Read())
    {

    string str =
    "insert into shahriyeh(scodemeli,cno,sno,price,date,flag) values(@scodemeli,@cno,@sno,@price,@date,'1')";

    SqlConnection a =
    new SqlConnection("data source=.; initial catalog=academy;integrated security=true");

    a.Open();
    SqlCommand b = new SqlCommand();
    b.Connection = a;
    b.CommandText = str;
    b.Parameters.AddWithValue("@scodemeli", txtcod.Text);
    b.Parameters.AddWithValue("@cno", cno.Text);
    b.Parameters.AddWithValue("@sno", sno.Text);
    b.Parameters.AddWithValue("@price", txtprice.Text);
    b.Parameters.AddWithValue("@date", uc1.VDate);


    b.ExecuteNonQuery();
    a.Close();
    MessageBox.Show("ثبت شد");

    }

    }
    catch (Exception)
    {
    dateshahriye();
    MessageBox.Show("در تاریخ" +" "+ lbldate.Text + "شهریه پرداخت شده است","خطا",MessageBoxButtons.OK,MessageBoxIc on.Warning);
    }
    }


  2. #2
    کاربر دائمی آواتار fjm11100
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    سن
    43
    پست
    658

    نقل قول: چرا دستور زیر try نیمشه؟

    یعنی چی؟سوالت گنگه؟ یعنی تا ته try نمیره و میره تو catch؟

  3. #3
    کاربر دائمی
    تاریخ عضویت
    مهر 1389
    محل زندگی
    دزفول شهر آب های خروشان
    پست
    148

    نقل قول: چرا دستور زیر try نیمشه؟

    نقل قول نوشته شده توسط fjm11100 مشاهده تاپیک
    یعنی چی؟سوالت گنگه؟ یعنی تا ته try نمیره و میره تو catch؟
    اره
    میره تو catch

  4. #4

    نقل قول: چرا دستور زیر try نیمشه؟

    دستور try , catch
    و محتویات catchبردار
    و دستورات داخل try رو اجرا کن و پیغام خطا رو بزار ببینیم

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

    نقل قول: چرا دستور زیر try نیمشه؟

    try catch را برداشتم ولی اصلا عملیاتی صورت نمیگیره . احتمال زیاد اشکال در دستور string flag =" select flag from shahriyeh "; هستش . انگار هیچ وقت درست نیست دستور که وقتی exereader میشه درست نیست شرط


    string flag =" select flag from shahriyeh ";
    var dr = bnk.exereader(flag);
    if (dr.Read())
    {

    string str =
    "insert into shahriyeh(scodemeli,cno,sno,price,date,flag) values(@scodemeli,@cno,@sno,@price,@date,'1')";

    SqlConnection a =
    new SqlConnection("data source=.; initial catalog=academy;integrated security=true");

    a.Open();
    SqlCommand b = new SqlCommand();
    b.Connection = a;
    b.CommandText = str;
    b.Parameters.AddWithValue("@scodemeli", txtcod.Text);
    b.Parameters.AddWithValue("@cno", cno.Text);
    b.Parameters.AddWithValue("@sno", sno.Text);
    b.Parameters.AddWithValue("@price", txtprice.Text);
    b.Parameters.AddWithValue("@date", uc1.VDate);


    b.ExecuteNonQuery();
    a.Close();
    MessageBox.Show("ثبت شد");

    }

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

    نقل قول: چرا دستور زیر try نیمشه؟

    هر نفر باید فقط یک بار بتونه پول رو پرداخت کنه
    بزار چند بار بدن خوب مگه ایراد داره

    true رو با حرف بزرگ بنویس True
    Sql به کوچک و بزرگ بودن حروف حساس نیست

    و در کل وقتی ما از try و Catch استفاده می کنیم موقعی که مشکلی تو برنامه باشه برنامه به سراغ catch می ره و توابع اونو اجرا می کنه پس برنامتون یه جایش میشکل داره شما با حذف Try و catch یا خوندن متن ارور catch بتونی مشکلو رفع کنی

  7. #7
    کاربر دائمی
    تاریخ عضویت
    مهر 1389
    محل زندگی
    دزفول شهر آب های خروشان
    پست
    148

    نقل قول: چرا دستور زیر try نیمشه؟

    نقل قول نوشته شده توسط amir200h مشاهده تاپیک
    بله درست میگین.
    مشکل از کوئریتونه. به این صورت بنویسین
     string flag =" select flag from shahriyeh where flag<> 'true'  ";

    string flag =" select flag from shahriyeh where flag<> 'true' ";




    این کار رو کردم ولی اصلا چیزی اجرا نیمشه یعنی ثبت نیمشه داده ها و اینکه خطا هم نمدیه.

    عجیبه!!

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

    نقل قول: چرا دستور زیر try نیمشه؟

    می تونی برنامه رو قرار بدی ؟!
    بررسی کنیم ؟

  9. #9
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    کرمانشاه
    سن
    37
    پست
    735

    نقل قول: چرا دستور زیر try نیمشه؟

    با سلام
    دوست عزیز flag رو از چه نوعی تعریف کردی؟؟

    درست اینه که از نوع bit با مقدار پیش فرض false یا همون 0 تعریف کنی یعنی تمامی رکوردها در ابتدا مقدار false رو خواهند داشت برای بررسی شرط هم کافیه بنویسی
    select * from tbname where flag<>1

  10. #10
    کاربر دائمی
    تاریخ عضویت
    مهر 1389
    محل زندگی
    دزفول شهر آب های خروشان
    پست
    148

    نقل قول: چرا دستور زیر try نیمشه؟


    string flag =" select flag from shahriyeh where flag<>1" ;



    این کارو کردم. به نتیجه ای نرسیدم

    تو برنامه sql فیلد flag را در قسمت defult or value of bending برابر 0 قرار دادم.
    این کارم درسته؟

    شما روش دیگه ای به نظرتون نمیرسه؟

    یک توضیح مختصر این که با دستور [CSHARP] [ string flag =" select flag from shahriyeh where flag<>1" ;
    var dr = bnk.exereader(flag);
    if (dr.Read())
    /CSHARP] در بانک اطلاعاتی فیلد flag چک میشه اگه مخالف 1 بود (یعنی 0) به این معناس که تا الان این مشتری اطلاعاتش ثبت نشده و میره سراغ دستور
    if (dr.Read())
    {

    string str =
    "insert into shahriyeh(scodemeli,cno,sno,price,date,flag) values(@scodemeli,@cno,@sno,@price,@date,'1')";

    SqlConnection a =
    new SqlConnection("data source=.; initial catalog=academy;integrated security=true");

    a.Open();
    SqlCommand b = new SqlCommand();
    b.Connection = a;
    b.CommandText = str;
    b.Parameters.AddWithValue("@scodemeli", txtcod.Text);
    b.Parameters.AddWithValue("@cno", cno.Text);
    b.Parameters.AddWithValue("@sno", sno.Text);
    b.Parameters.AddWithValue("@price", txtprice.Text);
    b.Parameters.AddWithValue("@date", uc1.VDate);


    b.ExecuteNonQuery();
    a.Close();
    MessageBox.Show("ثبت شد");

    }
    و با این کار اطلاعات در جدول shahriyeh ثبت میشه و فیلد flag=1 میشه.
    تمام کارم درسته از نظر دستوری

    عجیبه هیچ عملی صورت نمیگیره. نه خطا میده و نه اجرا میشه.
    خخخخخخخخخخخخخخخ
    آخرین ویرایش به وسیله mehdiba3 : یک شنبه 17 شهریور 1392 در 14:19 عصر

  11. #11
    کاربر دائمی آواتار fjm11100
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    سن
    43
    پست
    658

    نقل قول: چرا دستور زیر try نیمشه؟

    توی catch اینو بنویس و پیامی که نشون میده را بزار اینجا
            catch (Exception e)         {
    MessageBox.Show(e.Message);
    }

  12. #12
    کاربر دائمی
    تاریخ عضویت
    مهر 1389
    محل زندگی
    دزفول شهر آب های خروشان
    پست
    148

    نقل قول: چرا دستور زیر try نیمشه؟

    نقل قول نوشته شده توسط fjm11100 مشاهده تاپیک
    توی catch اینو بنویس و پیامی که نشون میده را بزار اینجا
            catch (Exception e)         {
    MessageBox.Show(e.Message);
    }
    این کارو کردم ولی باز هیچ پیامی نداد

  13. #13
    کاربر دائمی آواتار fjm11100
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    سن
    43
    پست
    658

    نقل قول: چرا دستور زیر try نیمشه؟

    بریک پوینت بزار ببین اصلا میره تو catch بعد که رفت برو رو کلمه catch با ماوس ببین پیامش چیه

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

  1. جواب ندادن دلفی به دستور زیر
    نوشته شده توسط mbr485 در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 2
    آخرین پست: شنبه 06 مهر 1387, 07:50 صبح
  2. سوال: اجرا نشدن فایل Sample.ade با دستور زیر
    نوشته شده توسط ali_bagheri34 در بخش Access
    پاسخ: 0
    آخرین پست: شنبه 02 شهریور 1387, 08:39 صبح
  3. معادل دستور زیر در vb.net
    نوشته شده توسط Hossein Bazyan در بخش VB.NET
    پاسخ: 5
    آخرین پست: شنبه 18 اسفند 1386, 14:54 عصر
  4. ضرورت وجود دو دستور زیر در ابتدای برنامه:
    نوشته شده توسط zahra_67 در بخش برنامه نویسی اسمبلی خانواده x86
    پاسخ: 1
    آخرین پست: پنج شنبه 04 آبان 1385, 21:59 عصر
  5. معنی دو دستور زیر چه می با شد؟؟؟؟
    نوشته شده توسط papa_fal در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: جمعه 19 اسفند 1384, 23:58 عصر

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

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