Не имеет соответствующего столбца в считывателе данных с тем же именем
У меня есть 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 [email protected] and [email protected] ";
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");
}
}
но это дает мне ошибку:
Считыватель данных несовместим с указанным "GoogleModel.tbl_search". Элемент типа "id" не имеет соответствующего столбца в считывателе данных с тем же именем.
ПРИМЕЧАНИЕ: это мой класс tbl_search
:
public partial class tbl_search
{
public int id { get; set; }
public string title { get; set; }
public string result { get; set; }
}
У меня есть id
в моей таблице.. В чем проблема!!
Ответы
Ответ 1
В вашем SQL-заявлении возвращается заголовок, а не полная сущность.
Изменить:
Select top 1 title From tbl_search Where [email protected] and [email protected]
в
Select top 1 * From tbl_search Where [email protected] and [email protected]
Ответ 2
Я решил эту проблему, потому что у меня был "@StartDate" в моем последнем выборе, и asp.net не смог его прочитать и вернул его как "Column1", поэтому я решил это, назначив @StartDate переменной, которая хороша практика в любом случае.
Ответ 3
Проверьте строку подключения в web.config
(проверьте, подключены ли вы к правильному домену).
В моем случае - строка подключения к моей базе данных в web.config
имела в виду QA, а я изменял в базе данных Dev.