gpt4 book ai didi

linq - 如何将数据访问到IQueryable中?

转载 作者:行者123 更新时间:2023-12-04 08:00:34 25 4
gpt4 key购买 nike

我有IQueryable对象,我需要将IQueryable内部的数据放入Textboxs控件中。这可能吗?

我尝试类似的东西:

public void setdata (IQueryable mydata)
{

textbox1.text = mydata.????

}

更新:

我正在这样做:
public IQueryable getData(String tableName, Hashtable myparams)
{
decimal id = 0;

if (myparams.ContainsKey("id") == true)
id = (decimal)myparams["id"];

Type myType= Type.GetType("ORM_Linq." + tableName + ", ORM_Linq");

return this.GetTable(tableName , "select * from Articu where id_tipo_p = '" + id + "'");

}


public IQueryable<T> GetTable<T>(System.Linq.Expressions.Expression<Func<T, bool>> predicate) where T : class
{
return _datacontext.GetTable<T>().Where(predicate);
}

这将返回一个 {System.Data.Linq.SqlClient.SqlProvider+OneTimeEnumerable 1 [ORM_Linq.Articu]}`

我没有看到像您这样告诉我的任何方法。我看到Cast <>,Expression,ToString ...

最佳答案

编辑:已根据您其他帖子中的其他信息进行了更新...

您的getData方法返回的是IQueryable而不是强类型的结果,这就是为什么最终要强制转换它。尝试将其更改为:

public IQueryable<ORM_Linq.Articu> getData(...)

您是否要从不同的表中查询“Articu”?

完成上述更改后,您的代码可以按以下方式重写:
ORM_Linq.Articu result = mydata.SingleOrDefault();
if (result != null)
{
TextBoxCode.Text = result.id.ToString();
TextBoxName.Text = result.descrip;
}

如果您有一个结果,请使用 SingleOrDefault,如果不返回任何结果,它将返回默认值:
var result = mydata.SingleOrDefault();
if (result != null)
{
textbox1.text = result.ProductName; // use the column name
}
else
{
// do something
}

如果有多个结果,则循环遍历它们:
foreach (var item in mydata)
{
string name = item.ProductName;
int id = item.ProductId;
// etc..
}

关于linq - 如何将数据访问到IQueryable中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2162900/

25 4 0