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

نام تاپیک: اطلاعات آپدیت نمی شود (اجرا بدون ارور)

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

    Question اطلاعات آپدیت نمی شود (اجرا بدون ارور)

    سلام . این کد وقتی اجرا میشه باید اطلاعاتم بروز بشه ولی نمیشه و هیچ پیغام خطایی هم داده نمیشه . این کدی که اجرا میشه :





    rwd.daUpdate("update users set ([name]='" + textBox1_name.Text + "',"
    + "[lname]='" + textBox2_lname.Text + "',"
    + "[semat]='" + textBox5_job.Text + "',"
    + "[pass]='" + textBox4_pass.Text + "',"
    + "[sabtkonande]='" + textBox6_sabtkonande.Text + "',"
    + "[image]=" + mStream.GetBuffer()
    + " where [username]='" + textBox3_uname.Text + "')");




    تابعی که فراخونده میشه:




    public void daUpdate(string updCommand)
    {
    adapt = new SqlDataAdapter();
    command = new SqlCommand(updCommand, connection);
    adapt.UpdateCommand = command;
    }






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

  2. #2

    نقل قول: اطلاعات آپدیت نمی شود (اجرا بدون ارور)

    چرا کدت رو به این صورت مینویسی که احتمال خطا رو بالا میبره.
    از Parameters استفاده کن.

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

    نقل قول: اطلاعات آپدیت نمی شود (اجرا بدون ارور)

    سلام
    1- آیا Error هم میده؟
    2- از کجا می دونید Update نمی شه؟ آیا با برنامه ی خودتون چک می کنید یا از خارج اون؟(ممکنه ایراد از Load نکردن درست اطلاعات جدید باشه)

  4. #4
    کاربر دائمی آواتار sds1920
    تاریخ عضویت
    تیر 1388
    محل زندگی
    اصفهان
    سن
    35
    پست
    483

    نقل قول: اطلاعات آپدیت نمی شود (اجرا بدون ارور)

    توي اين كدي كه نوشتيد هيچ ايرادي نيست به جز اينكه Connection باز نيست.
    اگه شما ديتابيس رو به پروژه Attach كرديد بايد بگم كه اين ديتابيس به دو قسمت اضافه مي شه.يكي در قسمت پروژه و يكي هم در قسمت Debug برنامه.ديتابيسي كه در قسمت پروژه هست هميشه به صورتي خام يا بدون تغيير باقي مي مونه.تغييراتي كه در بانك مي ديد در بانكي كه در قسمت Debug هست وارد مي شه.اما مسئله اينجاست كه بعد از هر بار كامپايل شدن ديتابيس قسمت پروژه كه خام هست كپي شده و به جاي ديتابيسي كه در قسمت Debug هست قرار مي گيره.براي همين ممكنه تغييرات پاك بشه.

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

    نقل قول: اطلاعات آپدیت نمی شود (اجرا بدون ارور)

    با تشکر از همه دوستان :
    اوپن سورس عزیز من قبلا با پارامیترز می نوشتم یه نفر گفت اینجوری اصولی تره .
    کاردانوی گرامی اروری در کار نیست . من داده های دیتابیسم رو برررسی میکنم .



    sds1920 محترم . دوست خوب من دیتا بیس رو اتچ نکردم .در مورد باز بودن کانکشن هم فکر کنم یه جایی خوندم در روش دیتا آداپتر نیازی به باز شدن کانکشن نیست . اطلاعات داخل دیتا بیس ثبت میشن . وقتی بعد از ثبت میرم بررسی میکنم میبینم وجود دارند . اما وقتی میخوام همون اطلاعات رو مجددا برنامه رو اجرا کرده و تغییر بدم ، وقتی باز میرم دیتابیس رو جهت بررسی تغییرات چک کنم تغییرات نمایش داده نمیشن . نمیدونم مشکل از چی هست .

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

    نقل قول: اطلاعات آپدیت نمی شود (اجرا بدون ارور)

    شما ميگيد ثبت مي شه ولي نمايش داده نمي شه.پس بايد مشكل از دستور SELECT باشه نه UPDATE.

  7. #7
    کاربر دائمی آواتار میلاد قاضی پور
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    اوج بلند
    پست
    768

    نقل قول: اطلاعات آپدیت نمی شود (اجرا بدون ارور)

    ما را به دستور سلکت چکار ؟ من کجا باید از سلکت استفاده کنم . آیا باید قبل از آپدیت فیلدها رو سلکت کنم ؟

  8. #8
    کاربر دائمی آواتار sds1920
    تاریخ عضویت
    تیر 1388
    محل زندگی
    اصفهان
    سن
    35
    پست
    483

    نقل قول: اطلاعات آپدیت نمی شود (اجرا بدون ارور)

    حالا فهميدم.دوست عزيز شما اصلا تابع adapt.UpdateCommand.ExcuteNoneQuery() رو فراخواني نكرديد.

  9. #9
    کاربر دائمی آواتار میلاد قاضی پور
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    اوج بلند
    پست
    768

    نقل قول: اطلاعات آپدیت نمی شود (اجرا بدون ارور)

    قربون شکلت اصلا تعارف نکن بگو چقد پیاده شم . جون دادا بگو .
    مسأله برطرف شد . حالا یک ارور روی همون اکسکیوتنونکوئری وجود داره :
    Incorrect syntax near '('.
    An object or column name is missing or empty. For SELECT INTO statements, verify each column has a name. For other statements, look for empty alias names. Aliases defined as "" or [] are not allowed. Add a name or single space as the alias name.

  10. #10
    کاربر دائمی آواتار behnam25214
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    @-<-<
    پست
    338

    نقل قول: اطلاعات آپدیت نمی شود (اجرا بدون ارور)

    مشکل در دستور SQL ات هست که نوشتی !

  11. #11
    کاربر دائمی آواتار میلاد قاضی پور
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    اوج بلند
    پست
    768

    نقل قول: اطلاعات آپدیت نمی شود (اجرا بدون ارور)

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

  12. #12
    کاربر دائمی آواتار behnam25214
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    @-<-<
    پست
    338

    نقل قول: اطلاعات آپدیت نمی شود (اجرا بدون ارور)

    میگه فیلدهات خالی!فقط برای name از [] استفاده کن.میگه یک فضای خالی هم برای name وجود داره.به پرانتز هم که انگار گیر داده.

    به نظر من اگه از Parameters استفاده کنی خیلی بهتره!از این روشت هم خوب هست.(البته نظر خودم رو گفتم)

  13. #13
    کاربر دائمی آواتار میلاد قاضی پور
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    اوج بلند
    پست
    768

    نقل قول: اطلاعات آپدیت نمی شود (اجرا بدون ارور)

    خب من دارم سعی میکنم از پارامیترز استفاده کنم . ولی کاش روشی میبود که بتونم براش تابع بنویسم . البته برای اینم میشه اما اگه خواستم برا کسی توضیح بدم کابوس میشه . یعنی این مشکل نذاشته خواب تو چشام بره . دیشب خواب دیدم استاد شدم دارم به دانشجوها دستور آپدیت درس میدم . :)))

  14. #14
    کاربر دائمی آواتار behnam25214
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    @-<-<
    پست
    338

    نقل قول: اطلاعات آپدیت نمی شود (اجرا بدون ارور)

    حالا این مشکلت حل شد یانه.!؟

  15. #15
    کاربر دائمی آواتار میلاد قاضی پور
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    اوج بلند
    پست
    768

    نقل قول: اطلاعات آپدیت نمی شود (اجرا بدون ارور)

    متأسفانه فعلا نه . با روشپارامتر ها میخوام بنویسم بدین صورت که یک تابع در همون کلاسم مینویسم که دو تا آرایه رشته ای میگیره . یکی شامل عناوین فیلدها و یکی شامل مقادیر مربوطه . بعد با یک فور بهتعداد عناصر آرایه ها پارامتر اضافه میشه و برابر با آیتمهای آرایه دوم قرار داده میشه . میدونید من میخوام در پروژه های دیگه هم این کلاس رو استفاده کنم برای همین میخوام ترجیحا همه چی تو توابع باشه .

  16. #16
    کاربر دائمی آواتار sds1920
    تاریخ عضویت
    تیر 1388
    محل زندگی
    اصفهان
    سن
    35
    پست
    483

    نقل قول: اطلاعات آپدیت نمی شود (اجرا بدون ارور)

    اول اسم جدولت رو بين دوتا ` (كليد پ فارسي)قرار بده ببين درست مي شه يا نه؟
    اگه نشد چك كن ببين Buffer خالي نباشه.

  17. #17
    کاربر دائمی آواتار میلاد قاضی پور
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    اوج بلند
    پست
    768

    نقل قول: اطلاعات آپدیت نمی شود (اجرا بدون ارور)

    امکان نداره بافر خالی باشه . با مسیج باکس مقدار همشونو چک کردم . حتی اون قسمت مربوط به ایمیج رو هم حذف کردم . کوت ها رو هم حذف کردم . احتمالا مایکروسافت یادش رفته اونجاشو درست کنه .

  18. #18
    کاربر دائمی آواتار sds1920
    تاریخ عضویت
    تیر 1388
    محل زندگی
    اصفهان
    سن
    35
    پست
    483

    نقل قول: اطلاعات آپدیت نمی شود (اجرا بدون ارور)

    وقتي يه برنامه به اين مشكل بخوره بهترين راه Trace كردن با F10 هست.
    حالا كه ديگه اينقدر اين مشكل زيگيل شده بيا يكي يكي خطل ها رو بررسي كن ببين مشكل از كجاست.
    (در ضمن براي راحتي در Trace كردن از BreakPoint استفاده كن)

  19. #19
    کاربر دائمی آواتار میلاد قاضی پور
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    اوج بلند
    پست
    768

    نقل قول: اطلاعات آپدیت نمی شود (اجرا بدون ارور)

    اینکارو کردم عزیز. هیچ جا ارور نداره . درست میاد روی اگزکیوتنونکوئری لنگر میندازه . از همه مچکرم حالا یه وخ دیدی ویندوزمو عوض کردم درست شد :دی . اگه راه حلشو پیدا کردم اینجا اعلام میکنم .

  20. #20
    کاربر دائمی آواتار میلاد قاضی پور
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    اوج بلند
    پست
    768

    نقل قول: اطلاعات آپدیت نمی شود (اجرا بدون ارور)

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

    public void UPD(string[] fields, string[] values, string tableName,string updCommand)
    {

    command.Connection = connection;
    command.CommandText = updCommand;

    for (int i = 0; i < fields.Length; i++)
    {
    command.Parameters.AddWithValue("@"+fields[i].ToString(), values[i]);
    }
    connection.Open();
    command.ExecuteNonQuery();
    connection.Close();
    بعد به این صورت فراخوانی شد :


    string[] flds=new string[5];
    flds[0] = "name";
    flds[1] = "lname";
    flds[2] = "semat";
    flds[3] = "pass";
    flds[4] = "sabtkonande";

    string[] vals=new string[5];
    vals[0] = textBox1_name.Text;
    vals[1] = textBox2_lname.Text;
    vals[2] = textBox5_job.Text;
    vals[3] = textBox4_pass.Text;
    vals[4] = textBox6_sabtkonande.Text;


    rwd.UPD(flds, vals, "users",
    "update users set name=@name,lname=@lname,"
    + "semat=@semat,pass=@pass,sabtkonande=@sabtkona nde"
    +",image="+mStream.GetBuffer()+" where username="+textBox3_uname.Text);
    همونطور که گفتم این کد هم کار نکرد و ارور دقیقا همون ارور کد قبلی بود . راه دیگه ای به ذهنم نرسید جز اینکه بزرگترین جنایت دنیای برنامه نویسی رو مرتکب بشم که باعث شد کد باتونم به این شکل در بیاد :


    private void button_sabtekarbar_Click(object sender, EventArgs e)
    {
    MemoryStream mStream = new MemoryStream();
    pictureBox1.Image.Save(mStream, ImageFormat.Gif);
    if (textBox4_pass.Text == textBox7_confPass.Text)
    {
    if (isUpdateForm == false)
    {

    //byte[] pic = ReadFile(picPath);

    rwd.daInsert("INSERT INTO users ([name] ,lname, semat ,username, pass, sabtkonande,image)"
    + "values('" + textBox1_name.Text + "','"
    + textBox2_lname.Text + "','"
    + textBox5_job.Text + "','"
    + textBox3_uname.Text + "','"
    + textBox4_pass.Text + "','"
    + textBox6_sabtkonande.Text + "','"
    + mStream.GetBuffer() + "')");

    MessageBox.Show("کاربر مورد نظر با موفقیت ثبت شد.", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
    else
    {
    SqlConnection con = new SqlConnection();
    SqlCommand cmd = new SqlCommand();
    con.ConnectionString = "server=(local)\\sqlexpress;" +
    "initial catalog=University;" +
    "user id=Administrator;integrated security=SSPI;";

    cmd.Connection = con;
    cmd.CommandText = "update users set [name]=@name, lname=@lname, semat=@semat"
    + ", pass=@pass , sabtkonande=@sabtkonande , image=@image";
    cmd.Parameters.AddWithValue("@name", textBox1_name.Text);
    cmd.Parameters.AddWithValue("@lname", textBox2_lname.Text);
    cmd.Parameters.AddWithValue("@semat", textBox5_job.Text);
    cmd.Parameters.AddWithValue("@pass", textBox4_pass.Text);
    cmd.Parameters.AddWithValue("@sabtkonande", textBox6_sabtkonande.Text);
    cmd.Parameters.AddWithValue("@image", mStream.GetBuffer());
    con.Open();
    cmd.ExecuteNonQuery();
    con.Close();

    MessageBox.Show("اطلاعات وارد شده با موفقیت تغییر یافت.", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
    }
    else
    MessageBox.Show("رموز وارد شده یکسان نیستند" , "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    میدونم بد آموزی داره ولی چاره ای جز خط زدن صورت مسأله نبود.

    به نظر خودم دلیل اون ارور شاید این بود که نباید مقادیر کنترل ها به صورت پارامتر به تابع اون کلاس فرستاده میشدن . احتمالا وقتی مقادیر اونجا میرفت خالی میشد .

برچسب های این تاپیک

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

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