PDA

View Full Version : سوال: مشکل اجرای کوئری برای combobox



hercool
پنج شنبه 17 مرداد 1392, 08:35 صبح
سلام دوستان
مشکلی که الان با کمبو باکس دارم اینه که بعد از انتخاب یک displaymember می خوام اون رو داخل یک متغییر کنم و اونو پاس بدم به یک کوئری و مقدار برگشتی رو بگیرم اما هر کاری می کنم نمیشه کد رو میزارم براتون
این کد در فرم لود هست
this.namefieldTableAdapter.Fill(this.choisefieldDa taSet.namefield);
بعد کدی که در داخل cmbchois_SelectedIndexChanged هست اینه
البته چند راه هست که امتحان کردم و جواب نمیده
private void cmbchois_SelectedIndexChanged(object sender, EventArgs e)
{string field;

if (cmbchois.SelectedValue == null) { return; }
else
{
string name = cmbchois.SelectedItem.ToString();
MessageBox.Show("" + name);
int namefield = this.namefieldTableAdapter.namefill(this.choisefie ldDataSet.namefield, codetype);
// MessageBox.Show("" + namefield);
int namee = this.namefieldTableAdapter.nameFillBy(this.choisef ieldDataSet.namefield, name);
if (field == null) { return; }
else
{
field = choisefieldDataSet.Tables[0].Columns["namefield"].ToString();
MessageBox.Show("" + field);
}
}
}
کد کوئری هم اینه
SELECT nametable
FROM namefield
WHERE (namefarsi = @name)


حالا میگم دقیقا باید چکار کنه
وقتی روی کمبو باکس بین گزینه ها یکی رو انتخاب می کنیم display member برابر namefarsi هست حالا کوئری باید بره بگرده و مقدار nametable رو برگردونه که namefarsi برابر متغییر باشه که ما در کمبوباکس انتخابش کردیم هست

Mahmoud.Afrad
پنج شنبه 17 مرداد 1392, 19:31 عصر
نیاز به ایین همه کوئری زدن نیست. موقعی که داری کمبو رو پر میکنی nametable رو هم سلکت کن و به ValueMember نسبت بده. در رویداد هم به جای سلکت مجدد کافیه selectedvalue رو بخونی.

hercool
پنج شنبه 17 مرداد 1392, 19:40 عصر
ممنون بابت پاسخت
من می تونم مقدار nametable رو بگیرم اما در جدولم می خوام بدونم شماره ای دی nametable انتخاب شده چند هست اما هر کاری می کنم نمیشه مقدار رو نمی تونم بگیرم

Mahmoud.Afrad
پنج شنبه 17 مرداد 1392, 21:47 عصر
کمبوباکس رو چجوری پر میکنی. با چه کوئری ای؟

hercool
پنج شنبه 17 مرداد 1392, 22:03 عصر
خوب با استفاده از بایندینگ خود کمبوباکس یک اتصال با دیتابیس و بعد ساخت دیتاست و بایندینگ و بعد اداپتور که این دو تا رو خود سیستم درست می کنه و من در قسمت های displaymember و valuemember فیلد های مورد نظرم رو انتخاب می کنم و شرط ها رو هم در رویداد change میزارم و جواب رو میگیرم تا اینکه میرسم به گرفتن مقدار ای دی که دچار مشکل میشم

Mahmoud.Afrad
پنج شنبه 17 مرداد 1392, 22:31 عصر
همون ستون آی دی رو به Valuemember نسبت بدید. در اینصورت selectedvalue همان آی دی انتخابی خواهد بود.

hercool
جمعه 18 مرداد 1392, 08:25 صبح
خوب نمی تونم پشت سر هم که مقادیر رو عوض کنم
چون من می خوام در قسمت displaymember می خوام فیلد جدول tablefarsi رو داشته باشم و مقدار valuemember رو با مقدار فیلد nameable پر می کنم تا انتخاب نام فارسی مقدار انگلیسی معادل رو بتونم بگیرم بعد از این می خوام می خوام مقدار ایدیش رو در جدولی که داشتم بدست بیارم
پس بنابراین نمی تونم مقدار valuemember رو تغییر بدم