PDA

View Full Version : خطا در زمان ذخیره کردن



near_86
یک شنبه 30 دی 1386, 14:38 عصر
من از vb.net 2005 استفاده می کنم
میخوام اطلاعات یکی از فرمهامو توی sql ذخیره کنم واز کد زیر استفاده می کنم




pubsqlcom.CommandText = "INSERT INTO sale ( stu_nu,code_book,price_sale ,date_sale) VALUES (N'" & Txtstu_nu.Text & "',N'" & Txtcbook.Text & "',N'" & Txtprice.Text & "',N'" & Txtdate.Text & "')"

pubsqlcom.Connection = pubsqlcon
If pubsqlcon.State = ConnectionState.Closed Then pubsqlcon.Open()
pubsqlcom.ExecuteReader()



با اجرای خط آخر با این خطا روبرو میشم :




Cannot insert the value NULL into column 'ID_sale', table 'bookshop.dbo.sale'; column does not allow nulls. INSERT fails.
The statement has been terminated.


من فیلد id_sale رو به صورت کلید اصلی تعریف کردم و auto number هست

1 سوال دیگه هم که دارم اینه که :
چطور میتونم کنترل کنم که اگه قبلا اطلاعات ذخیره شدن دیگه دوباره ذخیره نشن؟؟

amirsajjadi
یک شنبه 30 دی 1386, 20:26 عصر
pubsqlcom.CommandText = "INSERT INTO sale ( stu_nu,code_book,price_sale ,date_sale) VALUES (N'" & Txtstu_nu.Text & "',N'" & Txtcbook.Text & "',N'" & Txtprice.Text & "',N'" & Txtdate.Text & "')"



pubsqlcom.CommandText = "INSERT INTO sale ( stu_nu,code_book,price_sale ,date_sale) VALUES ('N" & Txtstu_nu.Text & "','N" & Txtcbook.Text & "','N" & Txtprice.Text & "','N" & Txtdate.Text & "')"

near_86
دوشنبه 01 بهمن 1386, 11:27 صبح
با انجام این کار باز هم همون خطا ایجاد میشه
چه کاری باید انجام بدم

near_86
سه شنبه 02 بهمن 1386, 09:04 صبح
از دوستان کسی هست که بتونه کمکم کنه؟؟

من همچنان با این خطا روبرو میشم



Cannot insert the value NULL into column 'id', table 'bookshop.dbo.sales'; column does not allow nulls. INSERT fails.
The statement has been terminated.

reza_rad
سه شنبه 02 بهمن 1386, 09:25 صبح
مشکل شما اینه که مقدار ستون id را وارد نمی کنید و از آنجاییکه این فیلد نمی تواند مقدار null بگیرد با ارور بالا مواجه می شوید.
برای حل مشکل باید ستون id را هم در دستور insert خود به همراه مقدار آن اضافه کنید.

visual_sadegh
سه شنبه 02 بهمن 1386, 09:45 صبح
برای فیلد ID_sale مقدار بده ببین چی می شه اگه قبول کرد یعنی
اون فیلد autonum نیست. دوباره باید چک کنی

visual_sadegh
سه شنبه 02 بهمن 1386, 09:46 صبح
برای سوال دوم می تونی یا در برنامه قبل از ثبت جستجوی کنی یا اینکه برای فیلد هات ایندکس چند فیلدی یکتا تعریف کنی.
البه به نظر بنده توی برنامه برنامه سرچ کنی بهتره

near_86
سه شنبه 02 بهمن 1386, 11:00 صبح
ممنونم از راهنماییهاتون

مشکلم از sql بود