entity framework6 + C#传递一个combobox.SelectedValue作为context.CreateQuery的参数,我想念的东西很简单?
ObjectContext context = ((IObjectContextAdapter)db).ObjectContext; string queryString = @"SELECT VALUE c FROM Product AS c WHERE c.ProductType = " + comboBox1.SelectedValue; ObjectQuery productQuery = context.CreateQuery( queryString, comboBox1.SelectedValue );
//我无法将combobox.selectedvalue作为参数传递 –
我稍后会告诉你原因。 我们先来看看这段代码吧,我可以解释一下这个问题。
这是一个Person
类:
public class Person { public int Age { get; set; } public string Name { get; set; } }
这是一个列表,我们将combobox绑定到:
var persons = new List() { new Person { Age = 35, Name = "George" } };
以下是设置绑定的不同方法:
comboBox1.DataSource = persons; comboBox1.DisplayMember = "Name"; comboBox1.ValueMember = "Name";
combobox1.SelectedValue
将返回“George”。
以下是设置绑定的另一种方法:
comboBox1.DataSource = persons; comboBox1.DisplayMember = "Name";
combobox1.SelectedValue
将返回一个Person
对象。
您的问题很可能是因为SelectedValue
没有返回您希望返回的内容。
您必须在查询中添加一个参数,即:
var context = ((IObjectContextAdapter)db).ObjectContext; var queryString = @"SELECT VALUE c FROM Product AS c WHERE c.ProductType = @productType"; var productQuery = context.CreateQuery(queryString, new ObjectParameter("productType", comboBox1.SelectedValue);