[英]Show tables using entity framework
我正在嘗試使用Entity Framework在gridview中顯示t1
表的所有數據,但出現錯誤
LINQ to Entities無法識別方法'Int32 ToInt32(System.String)'方法,並且該方法無法轉換為商店表達式。
這是我的代碼:
protected void Button2_Click(object sender, EventArgs e)
{
var v = (from obj in de.t1
where obj.Id == Convert.ToInt32(TextBox5.Text)
select obj).ToList();
GridView1.DataSource = v;
GridView1.DataBind();
}
實體框架正在嘗試在SQL端執行Convert.ToInt32(TextBox5.Text)
,這顯然是不可以的。
因此,引入一個臨時變量來存儲轉換結果:
var tempId = Convert.ToInt32(TextBox5.Text);
然后將其傳遞給where
子句:
...
where obj.Id == tempId
...
protected void Button2_Click(object sender, EventArgs e)
{
var id = Convert.ToInt32(TextBox5.Text);
var v = (from obj in de.t1
where obj.Id == id
select obj).ToList();
GridView1.DataSource = v;
GridView1.DataBind();
}
您遇到的問題是實體框架不知道如何將Convert.ToInt32
轉換為有效的SQL表達式。 在查詢之前,只需將文本框值轉換為整數,一切就可以了。
protected void Button2_Click(object sender, EventArgs e)
{
int id = Convert.ToInt32(TextBox5.Text);
var v = (from obj in de.t1
where obj.Id == id
select obj).ToList();
GridView1.DataSource = v;
GridView1.DataBind();
}
protected void Button2_Click(object sender, EventArgs e)
{
var objId = Convert.ToInt32(TextBox5.Text);
var v = (from obj in de.t1
where obj.Id == objId
select obj).ToList();
GridView1.DataSource = v;
GridView1.DataBind();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.