Всем привет! Опишу суть проблемы есть некая база данных (таблица книг) и надо сделать поиск по определенному параметру даной таблицы....делаю к примеру запрос поиска по имени автора:
SqlConnection MyBaseConnector;
MyBaseConnector = new SqlConnection(MyAdress);
MyBaseConnector.Open();
SqlCommand MyFindComand = null;
string MyParam = "";
MyParam = "'" + MyFindParam + "'"; //FindParam - значение получаемое из TextBox (Пользователь сам вводит значение по которому проводится поиск)
if (NameFinder == true)
{
MyFindComand = new SqlCommand("SELECT Name,Author,Year,Number,Tags,Count,ForBorrow,PdfAvailable FROM [Books] WHERE Author=" + MyParam, MyBaseConnector);
}
SqlDataReader TableReader = null;
try
{
TableReader = MyFindComand.ExecuteReader();
while(TableReader.Read())
{
}
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
finally
{
if (TableReader != null)
{
TableReader.Close();
}
}
В данном коде в цикле while TableReader.Read() всегда будет возвращать false, хотя когда сам запрос будет выглядеть например вот так:
MyFindComand = new SqlCommand("SELECT * FROM [Books]", MyBaseConnector);
то все будет работать корректно....видимо проблема в самом запросе, но вот я не пойму что не так.Может быть сможете подсказать.
Все столбцы должны быть в квадратных скобках.
MyFindComand = new SqlCommand("SELECT [Name],[Author],[Year],[Number],[Tags],[Count],[ForBorrow],[PdfAvailable] FROM [Books] WHERE Author=" + MyParam, MyBaseConnector);
Сборка персонального компьютера от Artline: умный выбор для современных пользователей