تست کنید.....
نوشته شده توسط
ja_latifian
تا اینجا درست اما یه مشکل
برنامه من طوریه که روی header هر ستون datagrid که دبل کلیک میکنه یک تکست باکس روی هدر باز میشه و جستجو انجام میشه قبلا من توی فیلتر databinding فقط اسم ستون را برابر مقدار تکست باکس قرار میدادم و فیلتر انجام میشد ولی الان که باید توی where بنویسم چطوری x.name را بنویسم در حالیکه با کلیک کردن روی هدر ، نام هدر را بصورت string دارم امیدوارم منظورم را متوجه شده باشید
باز هم ممنون و تشکر از همگی
private void LoadData() {
//رویداد لود فرم قرار دهید
textBox1.Text = "Ali";
textBox2.Text = "Name";
//ya
textBox1.Text = "Alipor";
textBox2.Text = "Family";
b = Disp(textBox1.Text, textBox2.Text);
dataGridView1.DataSource = b;
}
private BindingSource Disp(string text,string nameColumn )
{//نام جدول ودیتا کلاس رو عوض کنید
//5
// روش جستجو
DataClasses1DataContext context = new DataClasses1DataContext();
//var q1 = from x in context.TInfos
// where x.Name.Equals(name)
// select x;
//var q2 = from x in context.TInfos
// where x.Name.Contains(name)
// select x;
//var q4 = from x in context.TInfos
// where x.Name.EndsWith(name)
// select x;
//var q5 = from x in context.TInfos
// where x.Name == name
// select x;
IQueryable<TInfo> result = null;
switch (nameColumn )
{
case "Name":
{
var name = from x in context.TInfos
where x.Name == (text)
select x;
result = name;
}
break;
case "Family":
{
var fam = from f in context.TInfos
where f.Family == (text)
select f;
result = fam;
}
break;
}
var bs = new BindingSource
{
DataSource =result ,
};
return bs;
}