我的Table
名为tbl_search
,其中包含以下列:id(int), title(nvarchar100), result(ntext)
我希望使用SQL query
,如下所示:
using (var db = new GoogleEntities())
{
const string selectCmd =
@"Select top 1 title From tbl_search Where title=@title and id=@id ";
var data = db.Database.SqlQuery<tbl_search>(
selectCmd,
new SqlParameter("@title", "wcf"),
new SqlParameter("@id", 1)
).FirstOrDefault();
if (data != null)
{
var serviceMember = data.ToString();
label1.Text = serviceMember == "" ? "" : (serviceMember == "True" ? "On" : "Off");
}
}
但它给了我一个错误:
数据阅读器与指定的&#39; GoogleModel.tbl_search&#39;不兼容。该类型的成员&#39; id&#39;在数据阅读器中没有相应的具有相同名称的列。
注意:这是我的tbl_search
课程:
public partial class tbl_search
{
public int id { get; set; }
public string title { get; set; }
public string result { get; set; }
}
我的桌子里有id
..问题是什么!!
答案 0 :(得分:12)
您的SQL语句仅返回标题而不是完整实体。
变化:
Select top 1 title From tbl_search Where title=@title and id=@id
为:
Select top 1 * From tbl_search Where title=@title and id=@id
答案 1 :(得分:0)
我解决了这个问题,因为我在上一次选择中有一个'@StartDate'而asp.net无法读取它并将其作为'Column1'返回,所以我通过将@StartDate指定给一个好的变量来解决这个问题无论如何都要练习。
答案 2 :(得分:0)
请检查web.config
中的连接字符串(检查您是否连接到正确的域)。
在我的情况下-web.config
中的数据库连接字符串是指质量检查,我正在Dev数据库中进行修改。
答案 3 :(得分:0)
我做了以下事情:
完成上述操作后,错误消失了。