PDA

View Full Version : خطا دادن کامبو باکس



hale1234
یک شنبه 29 دی 1392, 13:48 عصر
سلام
من یه فرم دارم که اطلاعات کاربرم روش نمایش داده شده مثل نام نا م خانوادگی شماره دانشجویی و نام دانشگاه
من به کاربر اجازه ی ویرایش اطلاعات با فراخوانی فرم edit دادم یعنی روی کلید اصلاح کلیک می کنه بعدفرم edit باز می شه .
تو فرم edit اینا رودارم

Me.TextBoxX1.Text = fname
Me.TextBoxX2.Text = lname

Me.TextBoxX3.Text = studentnumber
Me.ComboBoxEx2.SelectedText = university






ولی این خطا را به خطی که کامبو باکس داره می ده وقتی کلید تایید رو می زنم
که این کد ها رو داره


uni = ComboBoxEx2.SelectedItem.ToString
Dim updatee As String = " update tbl_useres set fname='" + TextBoxX1.Text + "',lname= '" + TextBoxX2.Text + "',university= '" + uni + "',sudentnumber = '" + TextBoxX3.Text + "'where Id = " & index & ""



خطاش اینه
Object reference not set to an instance of an object.
این خطا رو وقتی می ده که کاربر دانشگاه رو تغییر نداده باشه مثلا شماره دانشجویی رو فقط بخواد اصلاح کنه و بقیه رو تغییر نده .ولی اگر اسم دانشگاه رو دوباره از تو کامبو باکس انتخاب کنه این خطا رو نمی ده
باید چی کار کنم؟
ممنون

sagggad
یک شنبه 29 دی 1392, 14:20 عصر
از کودم خط دقیقا ارور میگیره؟

hale1234
یک شنبه 29 دی 1392, 14:23 عصر
uni = ComboBoxEx2.SelectedItem.ToString

sagggad
یک شنبه 29 دی 1392, 14:27 عصر
از کامپوننت استفاده میکنید؟
برای کامبوباکس ویژوال استودیو همچین اروری نمیده
فک کنم نوع ها با هم همخونی نداشته باشن

hale1234
یک شنبه 29 دی 1392, 14:29 عصر
مرسی این قسمت درست شد حالا ایتم کامبو باکس ذخیره نمی شه مثل اینکه انتخاب نشده باشه خالی ذخیره کرد
از دات نت بار استفاده می کنم

hale1234
یک شنبه 29 دی 1392, 14:38 عصر
نه درست نشد حالا این خطا رو به همون خط می ده
Conversion from type 'ComboItem' to type 'String' is not valid.

sagggad
یک شنبه 29 دی 1392, 14:45 عصر
این هم تقریبا با اون ارور برابره
میگه نمیتونه اون آیتم رو به استرینگ تبدیل کنه
بررسی کنید ببینید چرا؟

hale1234
یک شنبه 29 دی 1392, 14:50 عصر
نمی دونم تمام کد رو نگاه کردم
کل کدی که تو کلید دارن همونه البته با دستورات آپدیت
همین

sagggad
یک شنبه 29 دی 1392, 14:53 عصر
داخل دیتابیس فیلد university از چه نوع هست؟

hale1234
یک شنبه 29 دی 1392, 14:57 عصر
string هست

sagggad
یک شنبه 29 دی 1392, 14:59 عصر
سورس رو بذار شاید بتونم راهنماییت کنم

hale1234
یک شنبه 29 دی 1392, 15:02 عصر
MsgBox(index.ToString)ComboBoxEx2.SelectedIndex = ComboBoxEx2.FindStringExact(ComboBoxEx2.Text)
uni = ComboBoxEx2.SelectedItem
Dim updatee As String = " update tbl_useres set fname='" + TextBoxX1.Text + "',lname= '" + TextBoxX2.Text + "',university= '" + uni + "',sudentnumber = '" + TextBoxX3.Text + "',lat1='" + lati + "',lon1= '" + longi + "'where Id = " & index & ""

''
Dim s As New news.ServiceReference1.ServiceSoapClient
Dim msg As Boolean = s.updateusers(updatee)
If msg Then
Dim nl, un As String
nl = TextBoxX1.Text + " " + TextBoxX2.Text


Form1.LabelItem1.Text = nl
Form1.LabelItem2.Text = TextBoxX3.Text
Form1.LabelItem3.Text = un
My.Settings.name = nl
My.Settings.studentnumber = TextBoxX3.Text
My.Settings.university = uni
My.Settings.Save()
Me.Close()
Form1.Enabled = True

End If


این کد داخل کلیدم هست

hale1234
یک شنبه 29 دی 1392, 15:04 عصر
بدون کامبو باکس همه چی درسته ولی با اون نه

sagggad
یک شنبه 29 دی 1392, 15:07 عصر
الان اگه ToString بذاری باز هم ارور میده؟

hale1234
یک شنبه 29 دی 1392, 15:14 عصر
همون خطا رو می ده اولین خطا رو اگر کامبو باکس رو بدون تغییر رها کنم

hale1234
یک شنبه 29 دی 1392, 15:23 عصر
ببینید از فرمم عکس گرفتم اولی فرم 1 هست دومی هم فرم edit حالا اگر نام خانوادگی را تغییر دهم و کلید تاییدرو بزنم خطا می ده

behrooz69
دوشنبه 30 دی 1392, 02:47 صبح
دوست من سلام

1 ) شما داخل دیتابیس فیلد university رو از نوع Nvarchar تعیین کن . احتمالا حل شه

2 ) دوست من شما واسه نمایش رکورد قبلی ثبت شده دیگه نیاز نیست توی کمبو باکس نشون بدی . توی Textbox نشون بدی کافیه .

3 ) مشکل از کامپاننت نیست .

4 ) چرا آخه واسه ویرایش اینقدر خودتون رو زجر میدین آخه . دیتابیست Sql هستش خوب شما تو مرحله اول سرچتو کردی تو مرحله دوم با مقادیر تکس باکس ها بیا فیلد ها تو آپدیت کن . فقط آخریم مقدار رو بیا کمبو باکس بذار . اونم از Select Iteme اون نگیر از Select Text اون یا Select Value اون بگیر که اگه Select Text بگیره اونو خیلی راحت به رشته تبدیل میکنه و تو دیتابیست ذخیره میکنه .
uni = ComboBoxEx2.SelectedItem
رو به :
uni = ComboBoxEx2.SelectedText
یا
uni = ComboBoxEx2.SelectedText.ToString()

تغییر بده.

تا اینجا فکر کنم مشکلت حل میشه ولی اگه اگه اگه نشد :

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

یا حق.

hale1234
دوشنبه 30 دی 1392, 07:11 صبح
سلام و ممنون
1- Nvarchar انتخاب کردم مشکل پا برجاست
2- می خوام کاربر از بین دانشگاه های داخل کامبو باکس انتخاب کنه نه اینکه هر چی خواست بنویسه اگر تکس باکس بزارمهرچی می تونه بزاره
3- اره منم همین طور فکر می کنم
4- متوجه منظورتون نشدم خوب منم دارم همین کاری رو که شما می گین انجام می دم ببخشید اگر مبتدی هستم و متوجه نمی شم .Select Text وSelect Value را امتحان کرده ام قبل از اینکه اینجا سوال بپرسم درست نشد جواب نمی ده

Naghibi
دوشنبه 30 دی 1392, 08:21 صبح
سلام
از ComboBoxEx2.text استفاده کنید

saeedr22
دوشنبه 30 دی 1392, 10:24 صبح
اینم جواب میده
ComboBoxEx2.SelectedItem.Text