PDA

View Full Version : constrained to be unique



علی ارجمندی
یک شنبه 21 بهمن 1386, 12:53 عصر
دوستان عزیز سلام
این مطلب شاید خیلی قدیمی باشه ولی من هیچ وقت نتونستم حلش کنم
چطور میشه پیام خطای زیر را مدیریت کرد . وقتی ما یک فیلد را در
دیتا تیبل بصورت یکتا در می آوریم در صورت ورود اطلاعات تکراری پیام زیر
ظاهر میشود.
'Column 'iCode' is constrained to be unique. Value '1' is already present.

البته این نکته رو هم باید بگم حتی دیتا تیبل رو با ایونت تعریف کردم ولی بازهم نشد
ضمن اینکه میدانم نباید دیتای تکراری وارد کنم ولی پس خاصیت این فیلد چیست


Try

Dim dtTest As New DataTable
dtTest.Columns.Add("iCode", System.Type.GetType("System.Int32"))
dtTest.Columns("iCode").Unique = True

Dim dr As DataRow
dr = dtTest.NewRow
dr(0) = 1
dtTest.Rows.Add(dr)

Dim dr2 As DataRow
dr2 = dtTest.NewRow
dr2(0) = 1
dtTest.Rows.Add(dr2)

'Column 'iCode' is constrained to be unique. Value '1' is already present.

'GridEX1.DataSource = dtTest

Catch ex As Exception
MsgBox(ex.Message)

End Try

mohammad272005
یک شنبه 21 بهمن 1386, 22:21 عصر
1- فیلد رو Auto-increase کنید.
2- فیلدهای Auto-increase رو مقداردهی نکنید. خودبخود مقدار می گیرن.

علی ارجمندی
دوشنبه 22 بهمن 1386, 00:15 صبح
دوست عزیز از جوابت ممنونم
ولی این مورد رو خودم خوب میدونم . اما میخواهم بدون چطور میشه جلوی اون
پیغام رو گرفت . مایکروسافت از عمد امکان کنترل یکتایی رو اضافه کرده و کار رو
راحت کرده . فقط نمیدونم چطور باید ازش استفاده کرد .

علی ارجمندی
چهارشنبه 24 بهمن 1386, 23:28 عصر
دوستان ، اساتید محترم کسی نظری نداره !

hassan razavi
پنج شنبه 25 بهمن 1386, 09:24 صبح
قبل از ذخیره کردن رکورد جدید ، یک Find کنید ببینید که مقدار کلید شما قبلا در جدول ذخیره شده یا خیر؟

علی ارجمندی
شنبه 27 بهمن 1386, 21:35 عصر
وای خدا
بابا من خودم میدونم میشه جستجو کرد . هزار راه هم بلدم
اما مایکروسافت که بیکار نبوده این خاصیت رو اضافه کرده . این جوری
ما یه جستجو کمتر میکنیم . فقط نمیدونم چطور باید مدیرتش کرد .