PDA

View Full Version : سوال: جلوگیری از ثبت کد تکراری



aknj56
دوشنبه 12 تیر 1391, 10:29 صبح
با سلام خدمت دوستان
من میخام وقتی کدی را برای شخصی ثبت میکنم اگر قبلا ثبت کرده باشم ایراد بگیره و بگه تکراری هست البته من اومدم کد را در جدول کلید قرار دادم و با try اخطار میدم ولی مشکل این هست که اگر بخواهی دومرتبه این اطلاعات رو ویرایش کنی دیگه قبول نمی کنه و اخطار میده که قبلا این کد ثبت شده است
میخام این کد را از حالت کلید در بیارم و نیاز به یک دستور دارم که بفهمه این کد قبلا بوده یا نه که اخطار بده
لطفا کمک کنید

ROSTAM2
دوشنبه 12 تیر 1391, 11:48 صبح
مي تونيد از تابعي با اين دستور كوئري استفاده كنيد:


SELECT COUNT(*) AS Expr1
FROM Persons
WHERE (Code = @Code)

aknj56
دوشنبه 12 تیر 1391, 12:56 عصر
با تشکر از شما دوست عزیز
اگر میشه یک کم بیشتر توضیح بدین یا یک نمونه کد که ازش استفاده کردید بر ام بذارید
با تشکر

ROSTAM2
دوشنبه 12 تیر 1391, 14:24 عصر
به اين تاپيك سر بزنيد وارد كردن نام user بايد تك باشه

http://barnamenevis.org/showthread.php?348924-%D8%A7%D9%8A%D8%AC%D8%A7%D8%AF-%D8%AD%D8%B3%D8%A7%D8%A8-%D9%83%D8%A7%D8%B1%D8%A8%D8%B1%D9%8A-%D8%A8%D8%B1%D8%A7%D9%8A-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%88-Login-%D8%B4%D8%AF%D9%86-%D8%A8%D8%A2%D9%86

ebraham
دوشنبه 12 تیر 1391, 15:41 عصر
منم همچین امکانی را در برنامم استفاده کردم . باید به این روش عمل کنید : باید توی رویداد Leave تکست باکس مربوطه که توش کد رو وارد میکنی بنویسی :

sqlconnection.open
Dim dr As SqlDataReader
Dim cmd As New SqlCommand

cmd=New SqlCommand("select * from personal where code='" & TextBox1.Text & "'",sqlconconnection
dr = cmd.ExecuteReader
If dr.Read() Then

MessageBox.Show("کد پرسنلی تکراری است", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Warning)

TextBox1.resettext

TextBox1.Select
End If

sqlconnection.close

aknj56
سه شنبه 13 تیر 1391, 09:34 صبح
با سلام خدمت دوست عزیز
این ارور رو میده

http://www.pic1.iran-forum.ir/images/up7/23278981479516936813.png (http://www.pic1.iran-forum.ir/)

ebraham
سه شنبه 13 تیر 1391, 19:54 عصر
دستوری که من برای شما نوشتم برای اس کیو ال هستش . دیتاریدر متغیری برای گرفتن داده از بانکه و با executereader اونو میخونه . ولی بانک شما اکسسه . من اکسس کار نکردم . حالا ببین جای این دستور چی میتونی بزاری تا خطا نده .

M.KH-SH
سه شنبه 13 تیر 1391, 21:45 عصر
خوب دوست عزیز جواب این کار بسیار ساده هستش هر چند شما باید از همون کلیداسکی استفاده میکردین ولی جواب به این صورت هستش::::::

یک تابع بساز که کوئری به این صورت داشته باشه:::: select count (id) from tb_tst where fild_name='name vorodi'
حالا بعد از وارد کردن این کد شما بیا از دیتاست استفاده کن و این رو پر کن و بعد از پرکردن بیا مقدار داخل دیتاست رو بررسی کن که اگه از 0 بیشتر بود که ایتم رو رد نکنه و بگه تکراری هستش و اگه 0 بود ایتم رو ثبت کنه

دوست عزیز تمام تئوری رو بهت گفتم اگه مشکلی بود که من خودم برات تابع رو بنویسم که راحت باشی؟