PDA

View Full Version : خطا در درج پارامترها Sp از listView



rezaiy.ali
چهارشنبه 24 مرداد 1386, 10:36 صبح
با سلام
من یه listView داریم که درایه دو ستون است در ستون اول شماره تلفن قرار می گیرد و در ستون دوم هم نوع تلفن.
حالا من می خوام itemهر ستون را به عنوان یک پرامتر به بانک ام ارسال کنم کد زیر رانوشتم

For i = 0 To LV_Tell.Items.Count
SqlInsert_Tell.Parameters(0).Value = CStr(Id_Tell)
SqlInsert_Tell.Parameters(1).Value = Id_user.Text
SqlInsert_Tell.Parameters(2).Value = LV_Tell.Items(i)
SqlInsert_Tell.Parameters(3).Value = LV_Tell.Items(i).SubItems.ToString
SqlCon.Open()
SqlInsert_Tell.ExecuteNonQuery()
SqlCon.Close()
Id_Tell += 1
Next

در زمان اجرا خطایه Failed to convert parameter value from a ListViewItem to a String ظاهر میشه
لطفا راهنمایی بفرمایید.
با تشکر

MH2538
چهارشنبه 24 مرداد 1386, 10:43 صبح
سلام دوست من
بجای CStr از ToString. استفاده کن.
در خط چهارم پارامتر 3 هم بعد از (LV_Tell.Items(i رو به LV_Tell.Items(i).ToString تبدیل کن.
اگر اینبار بازهم پیام خطا داد زحمت بکش چند تا نمونه از اطلاعات داخل لیست و Id_Tell رو بگذار تا ببینیم.

mehdi.mousavi
چهارشنبه 24 مرداد 1386, 10:59 صبح
با سلام
من یه listView داریم که درایه دو ستون است در ستون اول شماره تلفن قرار می گیرد و در ستون دوم هم نوع تلفن.
حالا من می خوام itemهر ستون را به عنوان یک پرامتر به بانک ام ارسال کنم کد زیر رانوشتم

For i = 0 To LV_Tell.Items.Count
SqlInsert_Tell.Parameters(0).Value = CStr(Id_Tell)
SqlInsert_Tell.Parameters(1).Value = Id_user.Text
SqlInsert_Tell.Parameters(2).Value = LV_Tell.Items(i)
SqlInsert_Tell.Parameters(3).Value = LV_Tell.Items(i).SubItems.ToString
SqlCon.Open()
SqlInsert_Tell.ExecuteNonQuery()
SqlCon.Close()
Id_Tell += 1
Next
در زمان اجرا خطایه Failed to convert parameter value from a ListViewItem to a String ظاهر میشه
لطفا راهنمایی بفرمایید.
با تشکر


سلام.
کد زیر، ستون اول و دوم رو به شما میده...



For i = 0 To LV_Tell.Items.Count
Stirng param1 = LV_Tell.Items(i).SubItems(0).ToString
Stirng param2 = LV_Tell.Items(i).SubItems(1).ToString
Next

rezaiy.ali
چهارشنبه 24 مرداد 1386, 11:05 صبح
باز هم همان مشکل را داره
---------------------------------------------------
05111234567 منزل
05112345678 موبایل
--------------------------------------------------
من یه sub تعریف کردم و ID_tell با توجه به ایدی های قبلی در بانک ایجاد میکنه


Sub insert_tell()
SqlCon.Open()
dr = TopId_Tell.ExecuteReader
If dr.Read Then
If dr.IsDBNull(0) = TrueThen
Id_Tell = 0
Else
Id_Tell = dr(0) + 1
EndIf
EndIf
SqlCon.Close()
For i = 0 To LV_Tell.Items.Count
SqlInsert_Tell.Parameters(0).Value = Convert.ToString(Id_Tell)
SqlInsert_Tell.Parameters(1).Value = Id_user.Text
SqlInsert_Tell.Parameters(2).Value = LV_Tell.Items(i).ToString
SqlInsert_Tell.Parameters(3).Value = LV_Tell.Items(i).SubItems.ToString
SqlCon.Open()
SqlInsert_Tell.ExecuteNonQuery()
SqlCon.Close()
Id_Tell += 1
Next
EndSub

MH2538
چهارشنبه 24 مرداد 1386, 11:13 صبح
سلام
دوست عزیزم
مشکلی که شما گفتید احتمالاً بخاطر اینه که Id_Tell شما null است.
با گذاشتن breakpoint و Watch کردن مقادیری که داری به پارامتر می فرستی کنترل کن کدوم یکی از چهار تا مقدار تو نامعتبر داره ارسال میشه.
با F10 یک خط یک خط برو پایین و هر چهار تا رو Trace کن ببین چی داری میفرستی و کجا error میده

rezaiy.ali
پنج شنبه 25 مرداد 1386, 03:44 صبح
با سلام
متاسفانه این بار خطایه Violation of PRIMARY KEY constraint 'PK_TellPhone'. Cannot insert duplicate key in object 'dbo.TellPhone'.
The statement has been terminated.
میده
لطفا راهنمایی بفرمایید.

For i = 0 To LV_Tell.Items.Count
SqlInsertCommand1.Parameters(0).Value = CStr(Id_Tell)
SqlInsertCommand1.Parameters(1).Value = ID_User.Text
SqlInsertCommand1.Parameters(2).Value = LV_Tell.Items(i).SubItems(0).Text
SqlInsertCommand1.Parameters(3).Value = LV_Tell.Items(i).SubItems(1).Text
SqlCon.Open()
SqlInsertCommand1.ExecuteNonQuery()
SqlCon.Close()
Id_Tell += 1
Next

mehdi.mousavi
پنج شنبه 25 مرداد 1386, 13:51 عصر
با سلام
متاسفانه این بار خطایه Violation of PRIMARY KEY constraint 'PK_TellPhone'. Cannot insert duplicate key in object 'dbo.TellPhone'.
The statement has been terminated.
میده
لطفا راهنمایی بفرمایید.

For i = 0 To LV_Tell.Items.Count
SqlInsertCommand1.Parameters(0).Value = CStr(Id_Tell)
SqlInsertCommand1.Parameters(1).Value = ID_User.Text
SqlInsertCommand1.Parameters(2).Value = LV_Tell.Items(i).SubItems(0).Text
SqlInsertCommand1.Parameters(3).Value = LV_Tell.Items(i).SubItems(1).Text
SqlCon.Open()
SqlInsertCommand1.ExecuteNonQuery()
SqlCon.Close()
Id_Tell += 1
Next



سلام.
این خطا به این معنی هستش که شما دارید در جدول TellPhone دو رکورد با Primary Key یکسان ایجاد می کنید. این PK میتونه شماره تلفن، یا هر چیز دیگه ای باشه... به PK و Unique Index هایی که روی جدول تعریف کردید، هنگام Insert کردن رکورد دقت کنید.