Я пытаюсь отобразить данные из базы данных. Однако, несмотря на то, что в базе данных нет данных, записи не возвращаются.C# нет данных, возвращаемых из базы данных - «Неверная попытка прочитать, когда данных нет»
Если выполнить следующий запрос:
select Id, Movie_Name from [MovieTable] where Movie_Name like '10,000 BC'
Я получаю возвращается:
Однако при выполнении аналогичного запроса в C# ничего, кажется, возвращается. Мой код выглядит следующим образом:
try
{
string query = "select * from [MovieTable] where Movie_Name like @MovieName";
string movieName = "10,000 BC"
using (SqlConnection sconnection = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=E:\Application\ApplicationDatabase.mdf;Integrated Security=True");)
using (SqlCommand command = new SqlCommand(query, sconnection))
{
sconnection.Open();
command.Parameters.AddWithValue("@MovieName", movieName);
using (SqlDataReader oReader = command.ExecuteReader())
{
if (oReader != null)
{
while (oReader.Read())
{
MessageBox.Show(oReader["Movie_Name"].ToString());
}
}
}
}
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
Поле сообщения никогда не появляется. Добавление третьего окна сообщения чуть выше oReader.Read() отображает сообщение «Неверная попытка прочитать, когда данных нет». Есть что-то, чего я не вижу?
это сообщение, потому что вы не можете запросить данные у datareader, прежде чем вы прочитаете данные. MessageBox - это ужасный способ отладки кода – Plutonix
Это приложение для форм Windows? Если вы получаете значение года для переменной и указываете точку останова там, что она показывает? –
Ничего, поскольку он не входит в цикл while – difurious