PDA

View Full Version : سوال: تغییر نکردن TextBoxها با تغییر گزینه ComboBox بعد از اضافه کردن شرط Where



bmvgod
یک شنبه 16 دی 1397, 00:15 صبح
با سلام خدمت دوستان
ComboBox ی دارم که به دیتابیس وسله و در فرم لود با کد زیر این ComboBox پر میشه و گزینه های تکراری نمایش داده نمیشه:

var list = (from b in db.CommoTables select b.CommodName).Distinct().ToList();
cmbCommodityName.DataSource = list.ToList();
cmbCommodityName.DisplayMember = "CommodName";


و پشت این ComboBox از کد زیر استفاده شده که با تغییر گزینه این ComboBox مقدار ComboBox دیگه تغییر کنه:

private void cmbCommodityName_SelectedIndexChanged(object sender, EventArgs e)
{
var q = from s in db.CommoTables
where s.CommodName == cmbCommodityName.Text
select s;
cmbSiz.DataSource = q;
cmbSiz.DisplayMember = "CommodSize";
}


با استفاده از کد زیر با تغییر هر گزینه از ComboBox مقدار TextBox تغییر میکنه:

txtSaleCodCommodity.DataBindings.Add("Text", list , "CommodCod");


ولی موقع اجرا با خطای زیر مواجه میشم:
149556

وقتی کد زیر رو قبل پر شدن TextBox اضافه میشه:

var q = from d in db.CommoTables
where d.CommodName == cmbCommodityName.Text && d.CommodSize == cmbSiz.Text
select d;


و کد پرشدن TextBox بصورت زیر تغییر میکنه:

txtSaleCodCommodity.DataBindings.Add("Text", q , "CommodCod");


با تغییر گزینه ComboBox این TextBox تغییر نمیکنه.
کد نهایی بصورت زیره:

private void frmSalesInvoices_Load(object sender, EventArgs e)
{
db = new LinqToTrazoDataContext();
var list = (from b in db.CommoTables select b.CommodName).Distinct().ToList();
cmbCommodityName.DataSource = list.ToList();
cmbCommodityName.DisplayMember = "CommodName";
var q = from d in db.CommoTables
where d.CommodName == cmbCommodityName.Text && d.CommodSize == cmbSiz.Text
select d;
txtSaleCodCommodity.DataBindings.Add("Text", q , "CommodCod");
txtNameCO.DataBindings.Add("Text", q, "CompanyName");
txtUnitPrice.DataBindings.Add("Text", q , "UnitPrice");
txtTax.DataBindings.Add("Text", q , "Tax");
txtOff.DataBindings.Add("Text", q , "Dicount");
}
private void cmbCommodityName_SelectedIndexChanged(object sender, EventArgs e)
{
var q = from s in db.CommoTables
where s.CommodName == cmbCommodityName.Text
select s;
cmbSiz.DataSource = q;
cmbSiz.DisplayMember = "CommodSize";
}


ممنون میشم راهنماییم کنید که مشکل از کجاست و چه کدی باید نوشته بشه که این مشکل برطرف بشه.
باتشکر از تمامی دوستان

bmvgod
دوشنبه 24 دی 1397, 23:18 عصر
از بین دوستان کسی نمیتونه راهنماییم کنه که کد رو چجوری تغییر بدم تا مشکل برطرف بشه؟
خیلی وقت هست این مشکل رو مطرح کردم.