PDA

View Full Version : سوال: پر نشدن ComboBox1 توسط ComboBox دیگر



bmvgod
سه شنبه 11 دی 1397, 16:30 عصر
باسلام خدمت تمامی دوستان

من ComboBox ی دارم با نام cmbCommodityName که از جدول CommoTables اطلاعات فیلد CommodName میخونه، که در صفحه لودم از کد زیر استفاده کردم:

private void frmSalesInvoices_Load(object sender, EventArgs e)
{
db = new LinqToTrazoDataContext();
var list = db.CommoTables.ToList();
cmbCommodityName.ValueMember = "RowCommo";
cmbCommodityName.DisplayMember = "CommodName";
cmbCommodityName.DataSource = list;
}


حالا میخوام با اتخاب یکی از گزینه های این ComboBox اطلاعات فیلد CommodSize از همون جدول (CommoTables) و در ComboBox1 درج بشه، که از کد زیر استفاده کردم:

private void cmbCommodityName_SelectedIndexChanged(object sender, EventArgs e)
{
if (cmbCommodityName.SelectedIndex != -1)
{
var SizeCheng = from d in db.CommoTables
where d.CommodName == cmbCommodityName.SelectedText
select d;
comboBox1.ValueMember = "RowCommo";
comboBox1.DisplayMember = "CommodSize";
comboBox1.DataSource = SizeCheng;
}
}
ولی ComboBoX1 پر نمیشه، نمیدونم کجارو اشتباه کردم. میشه راهنماییم کنید که کدمو چجوری باید تغییر بدم تا ComboBox1 م پربشه؟
ممنون میشم راهنماییم کنید.
باتشکر

alexmcse
سه شنبه 11 دی 1397, 19:39 عصر
کدها رو به این صورت تغییر دهید


private LinqToTrazoDataContext db;
private void frmSalesInvoices_Load(object sender, EventArgs e)
{
db = new LinqToTrazoDataContext();
var list = db.CommoTables.ToList();
cmbCommodityName.DataSource = list;
//cmbCommodityName.ValueMember = "RowCommo";
cmbCommodityName.DisplayMember = "CommodName";

}




private void cmbCommodityName_SelectedIndexChanged(object sender, EventArgs e)
{
if (cmbCommodityName.SelectedIndex != -1)
{
var SizeCheng = from d in db.CommoTables
where d.CommodName == cmbCommodityName.SelectedText
select d;
comboBox1.DataSource = SizeCheng;
// comboBox1.ValueMember = "RowCommo";
comboBox1.DisplayMember = "CommodSize";

}

bmvgod
سه شنبه 11 دی 1397, 20:19 عصر
کدها رو به این صورت تغییر دهید


private LinqToTrazoDataContext db;
private void frmSalesInvoices_Load(object sender, EventArgs e)
{
db = new LinqToTrazoDataContext();
var list = db.CommoTables.ToList();
cmbCommodityName.DataSource = list;
//cmbCommodityName.ValueMember = "RowCommo";
cmbCommodityName.DisplayMember = "CommodName";

}




private void cmbCommodityName_SelectedIndexChanged(object sender, EventArgs e)
{
if (cmbCommodityName.SelectedIndex != -1)
{
var SizeCheng = from d in db.CommoTables
where d.CommodName == cmbCommodityName.SelectedText
select d;
comboBox1.DataSource = SizeCheng;
// comboBox1.ValueMember = "RowCommo";
comboBox1.DisplayMember = "CommodSize";

}

ممنون از راهنمایی تون.
تغیرات رو بصورتی ک گفتید پیاده کردم ولی نتیجه نگرفتم. نمی دونم ایراد کارم از کجاست؟
کد صفحه لودم کلا بصورت زیره:

private void frmSalesInvoices_Load(object sender, EventArgs e)
{
db = new LinqToTrazoDataContext();
var query = db.FactorSaleTables;
dgvSalesInvoi.DataSource = query;
txtSalesDate.Text = (PerCale.GetYear(DateTime.Now) + "/" + PerCale.GetMonth(DateTime.Now)
+ "/" + PerCale.GetDayOfMonth(DateTime.Now)).ToString();
s = txtSalesDate.Text.Replace("/", string.Empty);
t = s.Substring(2, 4);
//txtCodFactor.Text = t+i

var firstRecord = db.FactorSaleTables.Select(rf => rf.RowFact);

if (firstRecord.Count() == 0)
txtCodFactor.Text = t + 100;
else
{
var lastRecord = db.FactorSaleTables.Select(fn => fn.FactorNo);
txtCodFactor.Text = (lastRecord.Max() + 1).ToString();
}
var list = db.CommoTables.ToList();
cmbCommodityName.DataSource = list;
//cmbCommodityName.ValueMember = "RowCommo";
cmbCommodityName.DisplayMember = "CommodName";
txtSaleCodCommodity.DataBindings.Add("Text", list, "CommodCod");
txtNameCO.DataBindings.Add("Text", list, "CompanyName");
//txtNumber.DataBindings.Add("Text", list, "CommodNumb");
//txtSize.DataBindings.Add("Text", list, "CommodWeight");
txtSize.DataBindings.Add("Text", list, "CommodSize");
txtUnitPrice.DataBindings.Add("Text", list, "UnitPrice");
txtTax.DataBindings.Add("Text", list, "Tax");
txtOff.DataBindings.Add("Text", list, "Dicount");
}

و کد ComboBox م کلا بصورت زیره:

private void cmbCommodityName_SelectedIndexChanged(object sender, EventArgs e)
{
//txtNumber.Clear();
if (cmbCommodityName.SelectedIndex != -1)
{
var SizeCheng = from d in db.CommoTables
where d.CommodName == cmbCommodityName.SelectedText
select d;
comboBox1.DataSource = SizeCheng;
//comboBox1.ValueMember = "RowCommo";
comboBox1.DisplayMember = "CommodSize";
}
}

ممنون میشم راهنماییم کنید که ببینم ایراد کارم کجاست؟
باتشکر

alexmcse
جمعه 14 دی 1397, 18:44 عصر
مشکلت همون مشکل قبلی هست؟
کد رو تغییر ده به
private void frmSalesInvoices_Load(object sender, EventArgs e) {
db = new LinqToTrazoDataContext();
var query = db.FactorSaleTables;
dgvSalesInvoi.DataSource = query;
txtSalesDate.Text = (PerCale.GetYear(DateTime.Now) + "/" + PerCale.GetMonth(DateTime.Now)
+ "/" + PerCale.GetDayOfMonth(DateTime.Now)).ToString();
s = txtSalesDate.Text.Replace("/", string.Empty);
t = s.Substring(2, 4);
//txtCodFactor.Text = t+i


var firstRecord = query.Select(rf => rf.RowFact);


if (firstRecord.Count() == 0)
txtCodFactor.Text = t + 100;
else
{
var lastRecord = query.Select(fn => fn.FactorNo);
txtCodFactor.Text = (lastRecord.Max() + 1).ToString();
}
var list = db.CommoTables.ToList();
cmbCommodityName.DataSource = list;
//cmbCommodityName.ValueMember = "RowCommo";
cmbCommodityName.DisplayMember = "CommodName";
txtSaleCodCommodity.DataBindings.Add("Text", list, "CommodCod");
txtNameCO.DataBindings.Add("Text", list, "CompanyName");
//txtNumber.DataBindings.Add("Text", list, "CommodNumb");
//txtSize.DataBindings.Add("Text", list, "CommodWeight");
txtSize.DataBindings.Add("Text", list, "CommodSize");
txtUnitPrice.DataBindings.Add("Text", list, "UnitPrice");
txtTax.DataBindings.Add("Text", list, "Tax");
txtOff.DataBindings.Add("Text", list, "Dicount");
}

alexmcse
جمعه 14 دی 1397, 19:31 عصر
برنامه است تست کن
کوئری فایل دیتابیس و جدول داخل فولدر است مسیر دیتابیس را دلخواه تغییر بده و در اس کیو ال ایجاد کن
کوئری دیتابیس بنام DBExampleو
جدول TIn

bmvgod
شنبه 15 دی 1397, 22:28 عصر
برنامه است تست کن
کوئری فایل دیتابیس و جدول داخل فولدر است مسیر دیتابیس را دلخواه تغییر بده و در اس کیو ال ایجاد کن
کوئری دیتابیس بنام DBExampleو
جدول TIn

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