PDA

View Full Version : combobox.valuemember



jafari_m246
سه شنبه 09 مرداد 1386, 20:38 عصر
سلام
من کلی توی سایت در مورد کامبو باکس جستجو کردمو یه چیزهایی یاد گرفتم .مثل همینی که الان نوشتم .ولی نمیدانم چرا اون جوابی که انتظار داشتم رانداد


if (comboBox1 .Text !="")
str1 =" (select tr_num from sttr where st_num='" + Int32 .Parse ( comboBox1.ValueMember) + "')";
if (comboBox2 .Text != "")
str1 = str1 + " union (select tr_num from tctr where tc_num='" + comboBox2.ValueMember + "')";

DataTableMapping tblmap = newDataTableMapping();
DataColumnMapping colmap = newDataColumnMapping();
da = newSqlDataAdapter(str1, cn);
tblmap = da.TableMappings.Add("Table", "srh");
colmap = tblmap.ColumnMappings.Add("tr_num", "شماره اردو");
da.Fill(ds);
dataGrid1.DataSource = ds;
dataGrid1.DataMember = "srh";


من با این کد ها میخوام یک جستجوی کوچولو انجام بدهم که روی شماره دانشجوئی و شماره استاد جستجو می کند و اردو هائی را که با هم بودند را برمی گرداند .

خلاصه اینکه value مربوط به combo را برابر با کد ام قرار دادم ولی اون یک رشته را توی sql میبرد.

jafari_m246
پنج شنبه 11 مرداد 1386, 07:58 صبح
کسی نبود که کمک ام کنه...؟:ناراحت:

آخه چرا این تکه کد به جای اینکه یک شماره را از بانک بخونه و تو خودش نگه داره اون رشته روبرو اش را نگه میداره...؟


comboBox.valuemember="st#";

once4ever
پنج شنبه 11 مرداد 1386, 08:55 صبح
کجا به این ValueMember مقدار دادی؟

PC2st
پنج شنبه 11 مرداد 1386, 09:31 صبح
اگر میشه بهتر توضیح بدید. دقیقا نفهمیدم منظور از کد زیر چه بود؟


comboBox.valuemember="st#";

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

jafari_m246
پنج شنبه 11 مرداد 1386, 23:47 عصر
خوب همین فیلد شماره دانشجوئی است دیگه که بهش دادم

من می خواهم به text مربوط به کامبوباکس نام دانشجوها و به valuemember شماره دانشجوئی ها را اختصاص بدهم

PC2st
جمعه 12 مرداد 1386, 10:42 صبح
در اولین پست شما فیلدی بنام st# رو ندیدم که مشخص کرده باشید، همچنین از اینکه در پست اول در دستورات sql از خاصیت comboBox1.ValueMember یا comboBox2.ValueMember استفاده کرده بودید رو خوب متوجه نشدم...
بهرحال برای استفاده از مقدار فیلد مشخص شده در ValueMember، باید از خاصیت SelectedValue استفاده کنید، اگر درست فهمیده باشم در پست اول بجای comboBox1.ValueMember از comboBox1.SelectedValue استفاده کنید اگر میخواهید به مقدار value دسترسی داشته باشید همچنین برای comboBox2.

M * M * A
جمعه 12 مرداد 1386, 18:51 عصر
با سلام
چه جوری میشه در comboBox جستجو کرد ؟(بدون استفاده از for ,forech)

PC2st
جمعه 12 مرداد 1386, 22:18 عصر
چه جوری میشه در comboBox جستجو کرد ؟(بدون استفاده از for ,forech)
بهتر نبود یک تاپیک جدید باز میکردید؟!
به کمک متد FindString، متنی که میخواهید جستجو کنید رو بعنوان اولین پارامتر براش مشخص کنید، عددی رو برگشت میده اگر -1 بود یعنی چنین متنی وجود نداره و در صورتی که یک عدد مثبت رو برگشت بده، مقدار اون عدد همان مقدار index و یا همون محل قرار گیری متن (ترتیب قرار گیری) در comboBox خواهد بود.
مثلا:


if(comboBox1.FindString("JKK") == -1)
MessageBox.Show("JKK not found in comboBox1");

jafari_m246
سه شنبه 16 مرداد 1386, 08:19 صبح
SqlDataAdapter da1 = newSqlDataAdapter("select distinct st_name+'-'+st_family as info1,student.st_num from sttr,student where student.st_num=sttr.st_num", cn);
DataTable dt1 = newDataTable();
da1.Fill(dt1);
comboBox1.DataSource = dt1;
comboBox1.DisplayMember = "info1";
comboBox1.ValueMember = "st_num";


این کد را من در رویداد DropDown کامبو باکس نوشتم. و شماره دانشجوئی را به valuemember مربوط به combobox متصل کردم. حالا با توجه به کدهای پست اولم می خواهم روی این valuemember جستجو کنم .

حالا به جای اینکه شماره دانشجوئی در valumember باشد دقیقا رشته"st_num" توی آن است.

من selectvalue را هم امتحان کردم ولی متاسفانه چنین چیزی وجود ندارد

once4ever
سه شنبه 16 مرداد 1386, 10:56 صبح
این کد را من در رویداد DropDown کامبو باکس نوشتم.
واسه چی تو رویداد dropdown نوشتی؟!!
این کد رو تو رویداد OnLoad فرمت بنویس

jafari_m246
چهارشنبه 17 مرداد 1386, 08:32 صبح
آخه مشکل من که اینجا نیست.
مشکل من خط آخرشه که جواب نمیدهد.
یعنی شماره دانشجوئی را در value مربوط به combobox قرار نمیدهد.