PDA

View Full Version : خاصیت ValueMember کومبو باکس ...



mahdi5121
پنج شنبه 23 تیر 1390, 17:57 عصر
با سلام ...
من یه بانک اطلاعاتی درست کردم به نام "Bank" :
http://s1.picofile.com/file/6959642852/4.jpg



توی C# یه باتون گذاشتم و تو رویداد کلیک اون کدهای زیر رو نوشتم تا اطلاعات بانک بره داخل یک کومبو باکس.
http://s1.picofile.com/file/6959639834/2.jpg



http://s1.picofile.com/file/6959637822/1.jpg




خب ، حالا می خوام وقتی از کومبو باکس نام یک بانک رو انتخاب کنم ، با کلیک کردن روی باتون دوم، نام اون بانک به پاسارگاد تغییر کنه؛ واسه همین کد زیر رو نوشتم :
http://s1.picofile.com/file/6959641846/3.jpg


اما وقتی باتون دوم رو کلیک می کنم همه ی بانک ها به اسم جدید تغییر می کنند؛
http://s1.picofile.com/file/6959644864/5JPG.jpg
اما من می خوام فقط اون بانکی رو که از کومبو باکس انتخاب کردم ، تغییر کنه؛ مثلا" اونی که BankID اش هست 2 :

http://s1.picofile.com/file/6959688128/Capture.jpg
مگه تو مشخصه ی Valuemember کومبو باکس BankID هر بانک قرار نمی گیره ، پس چرا کد بالا عمل نمی کنه ؟

ممنون...

navidiran
پنج شنبه 23 تیر 1390, 19:29 عصر
"Update bank Set Bankname= .... where BankId=" + Convert.ToInt32(ComboBox1.text);

mahdi5121
پنج شنبه 23 تیر 1390, 20:09 عصر
"Update bank Set Bankname= .... where BankId=" + Convert.ToInt32(ComboBox1.text);




ممنون ولی من ID رو می خواستم نه Text رو ؛
مگه BankID رو من توی مشخصه ی Valuemember کومبو باکس نریخته بودم، چطور می تونم اون آی دی رو بازیابی کنم؟

فایل رو ضمیمه کردم ...

http://s1.picofile.com/file/6960311866/Bank.rar.html

sds1920
پنج شنبه 23 تیر 1390, 20:19 عصر
منم هر قت با این خاصیت کار کردم به مشکل برخوردم.توی کمبو شما خاصیت sort اگه true باشه درست کار نمیده.من که نتونستم تا حالا.اگه مشکلت حل شد برای ما هم توضیح بدین.ممنون.

maryam_20
پنج شنبه 23 تیر 1390, 20:23 عصر
چرا انقدر كار خودت رو سخت كردي ؟
اين طوري بنويس:


SqlConnection c = new SqlConnection("Data Source=.;Initial Catalog=test;Integrated Security=True");
c.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = c;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "update_table";
cmd.Parameters.Add("@name", SqlDbType.NVarChar, 50).Value = comboBox1.Text;
cmd.ExecuteNonQuery();

c.Close();

تو store procedure هم همين كوئري كه خوت نوشتي رو بنويس

morteza271
پنج شنبه 23 تیر 1390, 20:35 عصر
دوست عزیز شما به جای ComboBox1.ValueMember باید از comboBox1.SelectedValue.ToString() استفاده کنید.اینطوری درست میشه!
کدتون اشتباهه.من همیشه از این ک استفاده میکنم و درسته و مشکلی هم نداره!
موفق باشید.

mahdi5121
پنج شنبه 23 تیر 1390, 20:46 عصر
خیلی ممنون ولی فکر کنم منظورم رو خوب نگفتم ...

توی برنامه که بالا ضمیمه کردم روی باتون Show که کلیک می کنیم اطلاعات از بانک به کومبو باکس می ره .
حالا می خوام یکی از نام بانک ها رو از توی کومبو باکس انتخاب کنم و با زدن باتون Change ، اون بانک در sql به پاسارگاد تغییر کنه .(بانک یه مثاله)

من نمی خوام توی بانک اطلاعاتی بوسیله اسم بانک ، شرط رو انجام بدم چون ممکنه ما چند بانک ملی داشته باشیم که در این صورت همه بانک ملی ها به نام جدید تغییر می کنند من فقط می خوام اون بانکی که از کومبو انتخاب کردم، نامش عوض بشه که این کار فکر کنم فقط از دونستن Id بانک انجام می شه چون تو بانک اطلاعاتی ،آی ها ، یونیک هستند.

حالا وقتی که اطلاعات از sql به کومبو باکس می یاند، نامشون می ره تو مشخصه ی DisplayMember و آی دی بانک ها هم می ره توی ValueMember کومبو باکس.

من اگه به جای :
http://s1.picofile.com/file/6960427562/Capture.jpg
این رو بنویسم
http://s1.picofile.com/file/6959688128/Capture.jpg

درست می شه اما ثابت هست من می خوام با کاربر انتخاب کنه ، همیشه آی دی ثابت نباشه .

mahdi5121
پنج شنبه 23 تیر 1390, 20:51 عصر
دوست عزیز شما به جای ComboBox1.ValueMember باید از comboBox1.SelectedValue.ToString() استفاده کنید.اینطوری درست میشه!
کدتون اشتباهه.من همیشه از این ک استفاده میکنم و درسته و مشکلی هم نداره!
موفق باشید.

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

gilas1368
پنج شنبه 23 تیر 1390, 21:03 عصر
خیلی ممنون ولی فکر کنم منظورم رو خوب نگفتم ...

توی برنامه که بالا ضمیمه کردم روی باتون Show که کلیک می کنیم اطلاعات از بانک به کومبو باکس می ره .
حالا می خوام یکی از نام بانک ها رو از توی کومبو باکس انتخاب کنم و با زدن باتون Change ، اون بانک در sql به پاسارگاد تغییر کنه .(بانک یه مثاله)

من نمی خوام توی بانک اطلاعاتی بوسیله اسم بانک ، شرط رو انجام بدم چون ممکنه ما چند بانک ملی داشته باشیم که در این صورت همه بانک ملی ها به نام جدید تغییر می کنند من فقط می خوام اون بانکی که از کومبو انتخاب کردم، نامش عوض بشه که این کار فکر کنم فقط از دونستن Id بانک انجام می شه چون تو بانک اطلاعاتی ،آی ها ، یونیک هستند.

حالا وقتی که اطلاعات از sql به کومبو باکس می یاند، نامشون می ره تو مشخصه ی DisplayMember و آی دی بانک ها هم می ره توی ValueMember کومبو باکس.

من اگه به جای :
http://s1.picofile.com/file/6960427562/Capture.jpg
این رو بنویسم
http://s1.picofile.com/file/6959688128/Capture.jpg

درست می شه اما ثابت هست من می خوام با کاربر انتخاب کنه ، همیشه آی دی ثابت نباشه .

خب اگه درست فهميده باشم شما مي تونيد يه تكست باكس بزارين و اين دستور رو اجرا كنيد




Strsql="updata bank set bankname=N'پاسارگاد' where bankid=textbox1.text";