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

نام تاپیک: مشکل با دستور آپدیت

  1. #1

    مشکل با دستور آپدیت

    من دستور آپدیت رو به صورت زیر نوشتم اما خطا میده
    جالب اینه که این کد رو در یه پروژه جدا گانه استفاده کردم و بدون مشکل اجرا میشه
    ولی اینجا خطای syntax update eror رو میده


    Dim con As System.Data.OleDb.OleDbConnection
    Dim cmd As System.Data.OleDb.OleDbCommand
    con = New System.Data.OleDb.OleDbConnection("provider=micros oft.jet.oledb.4.0;data source=D:\poroje payani\1\web froshgah\logindb.mdb")
    con.Open()
    cmd = New System.Data.OleDb.OleDbCommand("update kala set code='" + txteditcod.Text + "',name='" + txteditnam.Text + "',price='" + txteditprc.Text + "',image='" + txteditaks.Text + "' where code=@code", con)
    cmd.Parameters.AddWithValue("@name", txteditnam.Text)
    cmd.Parameters.AddWithValue("@code", txteditcod.Text)
    cmd.Parameters.AddWithValue("@price", txteditprc.Text)
    cmd.Parameters.AddWithValue("@image", txteditaks.Text)

    cmd.ExecuteNonQuery()
    con.Close()


    بانکم اکسس هست و فیلدهای بانکم همه از نوع text هستن به جز فیلد code که از نوع number هست و فیلد code کلید اصلی بانکمم هست
    خیلی ممنون میشه اگر کسی راه حلی بهم پیشنهاد کنه چون واقعا کارم گیره و هفته آینده باید این پروژه رو تحویل بدم

  2. #2

    نقل قول: مشکل با دستور آپدیت

    نقل قول نوشته شده توسط khashaya مشاهده تاپیک
    من دستور آپدیت رو به صورت زیر نوشتم اما خطا میده
    جالب اینه که این کد رو در یه پروژه جدا گانه استفاده کردم و بدون مشکل اجرا میشه
    ولی اینجا خطای syntax update eror رو میده


    Dim con As System.Data.OleDb.OleDbConnection
    Dim cmd As System.Data.OleDb.OleDbCommand
    con = New System.Data.OleDb.OleDbConnection("provider=micros oft.jet.oledb.4.0;data source=D:\poroje payani\1\web froshgah\logindb.mdb")
    con.Open()
    cmd = New System.Data.OleDb.OleDbCommand("update kala set code='" + txteditcod.Text + "',name='" + txteditnam.Text + "',price='" + txteditprc.Text + "',image='" + txteditaks.Text + "' where code=@code", con)
    cmd.Parameters.AddWithValue("@name", txteditnam.Text)
    cmd.Parameters.AddWithValue("@code", txteditcod.Text)
    cmd.Parameters.AddWithValue("@price", txteditprc.Text)
    cmd.Parameters.AddWithValue("@image", txteditaks.Text)

    cmd.ExecuteNonQuery()
    con.Close()


    بانکم اکسس هست و فیلدهای بانکم همه از نوع text هستن به جز فیلد code که از نوع number هست و فیلد code کلید اصلی بانکمم هست
    خیلی ممنون میشه اگر کسی راه حلی بهم پیشنهاد کنه چون واقعا کارم گیره و هفته آینده باید این پروژه رو تحویل بدم
    فکر میکنم مشکل عملگر + باشه که استفاده کردید ! چون فیلد Code شما عددی هستش وقتی از + استفاده میکنید میخواد String شما را با اون عدد جمع کنه !

    اینجوری یه تست کنید :

    cmd = New System.Data.OleDb.OleDbCommand("update kala set code='" & txteditcod.Text & "',name='" & txteditnam.Text & "',price='" & txteditprc.Text & "',image='" & txteditaks.Text & "' where code=@code", con)


    در ضمن Connection String تون هم مشکل داره:
    provider=micros oft.jet
    provider=microsoft.jet

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

    نقل قول: مشکل با دستور آپدیت

    شما این تیکه رو حذف و امتحان کنید:
    code='" + txteditcod.Text + "',

  4. #4
    کاربر دائمی آواتار فرید نجفلو
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    تبریز
    پست
    1,189

    نقل قول: مشکل با دستور آپدیت

    نقل قول نوشته شده توسط Alirezanet مشاهده تاپیک
    فکر میکنم مشکل عملگر + باشه که استفاده کردید ! چون فیلد Code شما عددی هستش وقتی از + استفاده میکنید میخواد String شما را با اون عدد جمع کنه !

    اینجوری یه تست کنید :

    cmd = New System.Data.OleDb.OleDbCommand("update kala set code='" & txteditcod.Text & "',name='" & txteditnam.Text & "',price='" & txteditprc.Text & "',image='" & txteditaks.Text & "' where code=@code", con)
    احتمال شما کمه
    احتمال زیاد ایشون چون داخل دستور Update کلید اصلی رو هم set می کنن خطا میگیره
    و یا اینکه کلید اصلی از نوع عددی هست و دارن یه رشته می فرستن (با تک نقل قول)
    در هر دو صورت نیازی به set ;vnk کلید اصلی نیست

  5. #5

    نقل قول: مشکل با دستور آپدیت

    دوستان اول مرسی که جواب دادید
    اما هر دو تا کاری که گفتید رو انجام دادم ولی بازم به جواب نرسیدم
    هم به جای + از عملگر & استفاده کردم هم code رو حذف کردن از قسمت set ولی بازم فایده نداشت
    بازهم این پیغام رو میده Syntax error in UPDATE statement.
    دیگه عقلم به جایی نمیرسه
    یک نکته دیگه که هست بانکم یک جدول دیگه هم داره که تو اون جدول فیلد code وجود داره و کلید هم هست
    اما من ارتباطی بین این دو تا جدول برقرار نکردم کلید خارجی تعریف نکردم براشون
    ممکن ایراد از اون باشه؟

  6. #6

    نقل قول: مشکل با دستور آپدیت

    نقل قول نوشته شده توسط khashaya مشاهده تاپیک
    دوستان اول مرسی که جواب دادید
    اما هر دو تا کاری که گفتید رو انجام دادم ولی بازم به جواب نرسیدم
    هم به جای + از عملگر & استفاده کردم هم code رو حذف کردن از قسمت set ولی بازم فایده نداشت
    بازهم این پیغام رو میده Syntax error in UPDATE statement.
    دیگه عقلم به جایی نمیرسه
    یک نکته دیگه که هست بانکم یک جدول دیگه هم داره که تو اون جدول فیلد code وجود داره و کلید هم هست
    اما من ارتباطی بین این دو تا جدول برقرار نکردم کلید خارجی تعریف نکردم براشون
    ممکن ایراد از اون باشه؟
    نه ربطی به اون نداره !
    1بار query تون رو توی خود Access اجرا کنید ببینید مشکل نداره !
    بعد من الان دقت میکردم دیدم شما 4 پارامتر دارید میفرستید ولی فقط از Code استفاده میکنید ! یا مقدارتون رو با پارامترها Set کنید یا توی Command !

  7. #7

    نقل قول: مشکل با دستور آپدیت

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

     Dim con As System.Data.OleDb.OleDbConnection
    Dim cmd As System.Data.OleDb.OleDbCommand
    con = New System.Data.OleDb.OleDbConnection("provider=micros oft.jet.oledb.4.0;data source=D:\poroje payani\1\web froshgah\logindb.mdb")
    con.Open()
    cmd = New System.Data.OleDb.OleDbCommand("update kala set name=@name,price=@price,image=@image where code=@code", con)

    cmd.Parameters.AddWithValue("@name", txteditnam.Text)
    cmd.Parameters.AddWithValue("@price", txteditprc.Text)
    cmd.Parameters.AddWithValue("@image", txteditaks.Text)
    cmd.Parameters.AddWithValue("@code", txteditcod.Text)

    cmd.ExecuteNonQuery()
    con.Close()

  8. #8

    نقل قول: مشکل با دستور آپدیت

    سلام
    اینو تست کن:


    Dim con As System.Data.OleDb.OleDbConnection
    Dim cmd As System.Data.OleDb.OleDbCommand
    con = New System.Data.OleDb.OleDbConnection("provider=micros oft.jet.oledb.4.0;data source=D:\poroje payani\1\web froshgah\logindb.mdb")
    con.Open()
    cmd = New System.Data.OleDb.OleDbCommand("update kala set name=@name ,price=@price ,image=@image where code=@code", con)
    cmd.Parameters.AddWithValue("@name", txteditnam.Text)
    cmd.Parameters.AddWithValue("@code", txteditcod.Text)
    cmd.Parameters.AddWithValue("@price", txteditprc.Text)
    cmd.Parameters.AddWithValue("@image", txteditaks.Text)

    cmd.ExecuteNonQuery()
    con.Close()


    شما دارید فیلد کد رو با شرط برابری فیلد کد با یک مقداری, با همون مقدار آپدیت می کنید. پس لازم نیست که فیلد کد آپدیت شه. البته این خطا نیست.

    موفق باشید

  9. #9

    نقل قول: مشکل با دستور آپدیت

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

  10. #10

    نقل قول: مشکل با دستور آپدیت

    من یک پروژه دیگه ایجاد کردم با یک بانک جدید
    بانک رو عوض نکنید ! ببینید مشکل داره !

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

    نقل قول: مشکل با دستور آپدیت

    براي من تقريبا يه اتفاق مشابهي افتاد كه با از نو نوشتن برنامه حل شد نمي دونم چرا ولي فكر مي كنم بعضي وقتا اين مشكل از خود ويژوال استديو ايجاد مي شه تا حالا دو با اين مشكل افتاده كه پروژه رو از نو ايجاد كردم حل شد ولي هيچ دليل قانع كننده اي پيدا نكردم البته پروژه من كاملا فرق داشت ولي دقيقا همين ارور رو مي داد

  12. #12

    نقل قول: مشکل با دستور آپدیت

    نقل قول نوشته شده توسط Alirezanet مشاهده تاپیک
    بانک رو عوض نکنید ! ببینید مشکل داره !
    اینکارو کردم دوباره همون ارور رو داد
    به نظرتون مشکل از بانکه؟ چطور میشه مطمئن شد؟

  13. #13

    نقل قول: مشکل با دستور آپدیت

    نقل قول نوشته شده توسط kiarashk مشاهده تاپیک
    براي من تقريبا يه اتفاق مشابهي افتاد كه با از نو نوشتن برنامه حل شد نمي دونم چرا ولي فكر مي كنم بعضي وقتا اين مشكل از خود ويژوال استديو ايجاد مي شه تا حالا دو با اين مشكل افتاده كه پروژه رو از نو ايجاد كردم حل شد ولي هيچ دليل قانع كننده اي پيدا نكردم البته پروژه من كاملا فرق داشت ولي دقيقا همين ارور رو مي داد
    یعنی کل پروژه رو از نو بنویسم یا فقط این تیکه که ایراد داره؟
    منم فکر می کنم مشکل از ویژوال باشه به چند نفر که نشون دادم همه تعجب می کنن میگن کد درسته و باید کار کنه
    حتی تغییراتی که دوستان گفتن هم انجام دادم ولی بازم نشد

  14. #14
    کاربر دائمی آواتار M.KH-SH
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    تهران
    پست
    847

    نقل قول: مشکل با دستور آپدیت

    از این لینک میتونین کمک بگیرین
    https://barnamenevis.org/showthread.p...28#post1408728

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

    نقل قول: مشکل با دستور آپدیت

    نقل قول نوشته شده توسط khashaya مشاهده تاپیک
    یعنی کل پروژه رو از نو بنویسم یا فقط این تیکه که ایراد داره؟
    منم فکر می کنم مشکل از ویژوال باشه به چند نفر که نشون دادم همه تعجب می کنن میگن کد درسته و باید کار کنه
    حتی تغییراتی که دوستان گفتن هم انجام دادم ولی بازم نشد
    بله من new project ايجاد كردم و فقط كد ها رو كپي كردم البته ديدم كه مشابه اين اتفاق براي كامپايلر هاي ديگه هم افتاده

  16. #16

    نقل قول: مشکل با دستور آپدیت

    نقل قول نوشته شده توسط khashaya مشاهده تاپیک
    اینکارو کردم دوباره همون ارور رو داد
    به نظرتون مشکل از بانکه؟ چطور میشه مطمئن شد؟
    خوب اگه شما توی پروژه جدیدتون برای اتصال به DB همین اررور رو میبینید احتمالا مشکل از دیتابیس هستش ! احتمال داره اشتباهی توی طراحیش کرده باشید . مثلا شاید کلید اصلیتون AutoNumber باشه و توی جدیده نباشه! البته این مثال بود موارد دیگه رو هم چک کنید

  17. #17

    نقل قول: مشکل با دستور آپدیت

    دوستان ممنون از همه من مشکلم حل شد
    کد درست رو گفتم بیام بذارم که اگه در آینده کسی به مشکل بر خورد بتونه حل کنه
    ظاهرا مشکل این بود که اسم یکی از فیلدهای جدول رو کلمه کلیدی در نظر می گرفت ( احتمالا image ) که با استفاده از کلوشه مشکل حل شد
     Dim con As System.Data.OleDb.OleDbConnection
    Dim cmd As System.Data.OleDb.OleDbCommand
    Dim sql As String
    con = New System.Data.OleDb.OleDbConnection("provider=micros oft.jet.oledb.4.0;data source=D:\poroje payani\1\web froshgah\logindb.mdb")
    con.Open()

    sql = "update kala set [name]='" + txteditnam.Text + "',[price]='" + txteditprc.Text + "',[image]='" + txteditaks.Text + "'where [code]=@code"
    cmd = New System.Data.OleDb.OleDbCommand(sql, con)
    cmd.Parameters.AddWithValue("@code", Convert.ToInt32(txteditcod.Text)
    cmd.ExecuteNonQuery()
    con.Close()
    آخرین ویرایش به وسیله khashaya : یک شنبه 14 اسفند 1390 در 15:48 عصر

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

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

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