SqlDataReader не видит передаваемые параметры
Сам Sql запрос работает 100%, но как передать параметр в него чтобы это видел SqlDataReader. Сейчас он видит, что HasRow ничего нет.
using (SqlConnection connection = new SqlConnection(DBConnection.ConnectionString))
{
// SqlParameter nameParam = new SqlParameter("@id_trans", idTrans);
connection.Open();
SqlCommand command = new SqlCommand(SelectNaklInGroupNakl, connection);
// command.Parameters.Add("@id_trans", SqlDbType.NVarChar).Value = idTrans;
var param = new SqlParameter();
param.ParameterName = "@id_trans";
param.Value = "Value";
command.Parameters.Add(param);
// SqlParameter nameParam = new SqlParameter("@id_trans", idTrans);
SqlDataReader reader = command.ExecuteReader();
if (reader.HasRows) // если есть данные
{
while (reader.Read()) // построчно считываем данные
{
string ert = reader.GetValue(0).ToString() ?? "";
}
}
}
С простым Sql запросом не работает и все.
string selectNaklInGroupNakl = @"select * from tov_doc where id_trans = ' @id_trans ' ";
using (SqlConnection connection = new SqlConnection(DBConnection.ConnectionString))
{
// SqlParameter nameParam = new SqlParameter("@id_trans", idTrans);
connection.Open();
SqlCommand command = new SqlCommand(selectNaklInGroupNakl, connection);
command.Parameters.AddWithValue("@id_trans", idTrans);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read()) // построчно считываем данные
{
string ert = reader.GetValue(0).ToString() ?? "";
}
}
Ответы (2 шт):
Автор решения: S.H.
→ Ссылка
А если так?
using (SqlConnection connection = new SqlConnection(DBConnection.ConnectionString)) {
// SqlParameter nameParam = new SqlParameter("@id_trans", idTrans);
connection.Open();
SqlCommand command = new SqlCommand(SelectNaklInGroupNakl, connection);
command.Parameters.AddWithValue("@id_trans", idTrans);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read()) // построчно считываем данные
{
string ert = reader.GetValue(0).ToString() ?? "";
}
}
Автор решения: ebw1910
→ Ссылка
Ошибка заключалась в следующем. При выполнении запроса к Б.Д. необходимы было указывать '' для корректного ввода значения, либо выпадало в ошибку.

С кавычками всё ок в базе, соответственно я подумал что в программе нужно тоже заключить передаваемый параметр в ''
Но оказалось что так оно не работает. Убрав кавычки всё благополучно заработало.
Остается только один вопрос. Как он сам это определил и как это внутри отработало?

