PDA

View Full Version : سوال: کمک-ارتباط کمبو باکس با sql از طریق linq با شرط



ramin005
شنبه 06 خرداد 1391, 17:15 عصر
با سلام
بنده یک تیبل در server sql دارم
ستون ها:
ID
Name
Status

حالا سوال بنده
بنده میخواهم در کمبو نمایش دهد لیست Name را به شرطی که Status=1 باشد
و ID را به عنوان ValueMember حفظ کند

Status & ID در دیتابیس از نوع int هستند و name از نوع nchar

خواهش میکنم راهنمایی بفرمایید
با تشکر

ramin005
یک شنبه 07 خرداد 1391, 00:23 صبح
همچنان منتظر یاری...

omid_csh
یک شنبه 07 خرداد 1391, 00:47 صبح
با سلام
بنده یک تیبل در server sql دارم
ستون ها:
ID
Name
Status

حالا سوال بنده
بنده میخواهم در کمبو نمایش دهد لیست Name را به شرطی که Status=1 باشد
و ID را به عنوان ValueMember حفظ کند

Status & ID در دیتابیس از نوع int هستند و name از نوع nchar

خواهش میکنم راهنمایی بفرمایید
با تشکر
سلام
private void Form1_Load(object sender, EventArgs e)
{
DCLinqDataContext context = new DCLinqDataContext();
var query = from c in context.tables
where c.Status == 1
select c;

comboBox1.DataSource = query;
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "ID";
}

ramin005
یک شنبه 07 خرداد 1391, 09:06 صبح
سپاس از راهنمایی شما
اما بنده این کد را نوشتم
خطای زیر ظاهر شد:

The type or namespace name 'DCLinqDataContext' could not be found (are you missing a using directive or an assembly reference)

ramin005
یک شنبه 07 خرداد 1391, 09:12 صبح
خیلی خیلی تشکر
مشکل حل شد
خط اول را اینگونه نوشتم:
linqdataconnectDataContext connect = new linqdataconnectDataContext();

ramin005
دوشنبه 08 خرداد 1391, 14:00 عصر
با سلام

سوال دوم:
بنده میخواهم در مثال بالا مقدار ID و Status و همچنین Name را در سه TXTBOX قرار دهم؟
یعنی با انتخاب هر مورد از comboBox1 اطلاعات فیلدهای دیتابیس آن (name , id , status)در 3 text box مختلف قرار بگیرد.

پیشاپیش ممنون از راهنمایی شما عزیزان

omid_csh
دوشنبه 08 خرداد 1391, 17:08 عصر
سلام
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedValue is int)
{
DCLinqDataContext context = new DCLinqDataContext();
table ts = context.tables.Where(t => t.ID == Convert.ToInt32(comboBox1.SelectedValue)).SingleOr Default();

textBox1.Text = ts.ID.Value.ToString();
textBox2.Text = ts.Name.ToString();
textBox3.Text = ts.Status.Value.ToString();
}
}

ramin005
سه شنبه 09 خرداد 1391, 08:15 صبح
با سلام
و سپاس از رهنمایی شما
لطفا اگر مقدور باشه یکم توضیح بدید در مورد کد بالا
الان برای table , tables & default خطا نشون میده

omid_csh
سه شنبه 09 خرداد 1391, 09:47 صبح
سلام
table اسم همون جدولی هست که این سه تا فیلد داخلشن.

ramin005
سه شنبه 09 خرداد 1391, 11:09 صبح
بنده طبق فرمایش شما انجام دادم اما نتیجه خطاهای زیر می شود:
87617

omid_csh
سه شنبه 09 خرداد 1391, 11:36 صبح
بنده طبق فرمایش شما انجام دادم اما نتیجه خطاهای زیر می شود:
87617
DCLinqDataContext context = new DCLinqDataContext();
//table = اسم جدول
//tables = اسم جمع جدول
//برای مثال اگه اسم جدولت
//discountbon هستش
//بذار
//discountbon ts = context.discountbons.Where ...
table ts = context.tables.Where
(t => t.ID == Convert.ToInt32(comboBox1.SelectedValue))
.SingleOrDefault();
اینم جدولی که ساختم

ramin005
سه شنبه 09 خرداد 1391, 17:03 عصر
ممنون از اینکه اینقدر کامل توضیح میدهید
اینبار بدون هیچ اروری انجام شد
اما هیچ نتیجه ای در تکست باکس ها نشان داده نشد
با فرض اینکه ID و Status هردو از نوع int و name از نوع nvarchar و
ValueMember برابر ID
DisplayMember برابر name
آیا کدی که قرار دادید مناسب است؟
اگر امکان داشته باشه میتونید به صورت پروژه برا من آپلود کنید کدی که قرار دادید ؟
با تشکر صمیمانه از راهنمایی شما

omid_csh
چهارشنبه 10 خرداد 1391, 10:57 صبح
سلام
یه نمونه برات فرستادم