PDA

View Full Version : خطا هنگام اجرای دستور update



masoodz
جمعه 19 آبان 1391, 16:22 عصر
سلام دوستان
هنگام اجرای دستور Update با این خطا مواجه میشم . دستورم هم تا جایی که می دونم درسته
http://adsl-h3z.net/images/error.bmp
ممنون میشم راهنماییم کنید

mortezasar
جمعه 19 آبان 1391, 18:49 عصر
لطفا کدت رو بذار تا ببینیم مشکل از کجاست
چک باکس و رادیو باتن اگر داری ببین مقدارشون چه جوری ذخیره میشه

veniz2008
جمعه 19 آبان 1391, 21:04 عصر
سلام.
خطای سرریزی رخ داده . یعنی یک داده ای وارد میکنی که بیشتر ا محدوده یکی از فیلدهای جدولت هست.

hakim22
جمعه 19 آبان 1391, 21:07 عصر
شما یک فیلدی از نوع nvarchar دارید که درون پرانتزش طولش را مشخص کرده اید ( درون sql)
احتمالا هنگام پر کردن فیلدها در برنامه یکی از فیلدها با یک مقدار رشته ای با طول بلند تر پر میشه . در این موارد SQL این خطا رو میده.

مسئله اینه که در SQL طول رشته باید یک مقدار مشخص باشه یا MAX باشه. اما در CS طول رشته با مقدار خاصی مشخص نمیشه به همین دلیل گاهی این مشکل پیش میاد.

masoodz
شنبه 20 آبان 1391, 17:12 عصر
دوستان مشکل حل نشد
تمامی فلیلد های جدول رو بجر id و phone و mobile از نوع nvarchar(max) گذاشتم بازم همون خطا رو میدم
اینم کدش یه نگاه بندازید . فدای همتون
http://adsl-h3z.net/images/khata.png

veniz2008
شنبه 20 آبان 1391, 17:35 عصر
دوست عزیز این سبک کد نوشتن هم اذیت کننده است هم خطرناک و هم منسوخ شده.(از پارامترها استفاده کنید). باور کنید پوست آدم کنده میشه تا کوتیشن و دابل کوتیشن رو ست کنه!!. بگذریم...
احتمالا تکست باکس هایی که گذاشتید جابه جا شدن!!!. یعنی مثلا textbox4 که phone رو باید بگیره احتمال داره که روی فرم مثلا با textbox3 مربوط به فامیلی جابه جا شده باشه!. این مورد رو برای تک تک فیلدهای روی فرم چک کنید. البته این فقط یه احتمال هستش که باید اونو بررسی کنید. ممکنه مشکل از این نباشه.

mansourm
شنبه 20 آبان 1391, 17:39 عصر
دوست عزیز من تو برنامه خودم به این صورت استفاده کردم




connectionclass.f1("Update skarmand Set name=" + textbox2.text + ",family=" + textbox3.text + ",phone='" + textBox4.Text + "',mobile='" + textBox5.Text + "',semat=" + textBox6.Text + ",address='" + textBox7.Text + "'where idkarkon=" + textBox1.Text + "");

roolinjax
شنبه 20 آبان 1391, 17:45 عصر
سلام با یه نگاه چشمی هم میشه فهمید که ایراد توی گذاشتن کوتیشن هاست.
چرا گناه رو میندازید گردن اس کیو ال ؟ خداییش خودتو بذار جای اس کیو ال ببین چه کدی رو داری بهش ارسال می کنی ؟
اگر توی گذاشتن کوتیشن ها مشکل داری بصورت رشته بفرست دستورت رو (نه به شکل عکس) تا برات ست کنم

masoodz
شنبه 20 آبان 1391, 17:57 عصر
دوست من چرا بعضی جاها از ' استفاده کردی ولی بعضی جاها نه ؟
دوست عزیز من تو برنامه خودم به این صورت استفاده کردم

masoodz
شنبه 20 آبان 1391, 18:00 عصر
ممنون میشم درمورد مشکلم و نحوه گذاشتن کوتیشن ها یکم توضیح بدی
connectionclass.f1("update skarmand set name=N'"+textBox2.Text+"',family=N'"+textBox3.Text+"',phone=N'"+textBox4+"',mobile=N'"+textBox5.Text+"',semat=N'"+textBox6.Text+"',address=N'"+textBox7.Text+"'where idkarkon=N'"+textBox1.Text+"'");
سلام با یه نگاه چشمی هم میشه فهمید که ایراد توی گذاشتن کوتیشن هاست.
چرا گناه رو میندازید گردن اس کیو ال ؟ خداییش خودتو بذار جای اس کیو ال ببین چه کدی رو داری بهش ارسال می کنی ؟
اگر توی گذاشتن کوتیشن ها مشکل داری بصورت رشته بفرست دستورت رو (نه به شکل عکس) تا برات ست کنم

roolinjax
شنبه 20 آبان 1391, 18:06 عصر
ممنون میشم درمورد مشکلم و نحوه گذاشتن کوتیشن ها یکم توضیح بدی
connectionclass.f1("update skarmand set name=N'"+textBox2.Text+"',family=N'"+textBox3.Text+"',phone=N'"+textBox4+"',mobile=N'"+textBox5.Text+"',semat=N'"+textBox6.Text+"',address=N'"+textBox7.Text+"'where idkarkon=N'"+textBox1.Text+"'");

تک کوتیشن رو باید در مورد انواع داده ای استرینگ و تاریخ بذارید و برای فیلدهای عددی نیازی بهش نیست
ایراد کد شما فقط یه چیز کوچولوست !!!!
اونم اینکه textbox4 رو بدون Text. نوشتین.
بقیه اش همین کدیه که شما نوشتین.
البته اگر بین فیلدهای دیتابیستون نوع عددی دارین تک کوتیشن رو از مقدار اون فیلد بردارید
بازم اگر مشکلی بود بفرمایین

mansourm
شنبه 20 آبان 1391, 18:21 عصر
البته تو مثالی که من گذاشتم براتون درسته و توضیحات کاملو دوست عزیزمون roolinjax (http://barnamenevis.org/member.php?208617-roolinjax) دادن

r_s1389@yahoo.com
شنبه 20 آبان 1391, 20:00 عصر
سلام
دوست عزیز میگم من در برنامه ات c1.close ندیدم آخ؟
یعنی لازم نیست ؟

masoodz
شنبه 20 آبان 1391, 20:18 عصر
والا من که تا حالا باهاش مشکلی نداشتم . البته فکر کنم که یه خورده سربارو زیاد کنه
سلام
دوست عزیز میگم من در برنامه ات c1.close ندیدم آخ؟
یعنی لازم نیست ؟