Я вижу здесь несколько проблем ... Во-первых, похоже, что вы пытаетесь получить доступ к имени таблицы в строке:
if(dr1["tb_car"] != DBNull.Value
Вы должны передать полевое имя вместо имени таблицы. Таким образом, если таблица с именем «tb_car» было поле, называемое CarId, вы хотите, чтобы ваш код выглядит следующим образом:
if(dr1["CarId"] != DBNull.Value)
Если я прав, то, вероятно, нет поля с именем «tb_car», и Ошибка индекса вне диапазона - это потому, что DataReader ищет элемент в коллекции столбцов с именем «tb_car» и не находит его. Это в значительной степени то, что означает ошибка.
Во-вторых, прежде чем вы сможете даже проверить его, сначала нужно вызвать команду Read() DataReader, чтобы прочитать строку из базы данных.
так на самом деле ваш код должен выглядеть ...
while(dr.Read())
{
if(dr1["CarId"] != DBNull.Value)
{
....
и так далее.
Смотрите здесь для правильного использования DataReader: http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.read.aspx
Наконец, если вы просто проверить, чтобы увидеть, если есть какие-либо строки в таблице, вы можете игнорировать все выше и использования HasRows собственности как в
if(dr.HasRows)
{
....
хотя, если вы используете синтаксис while(dr.Read())
, код в то время цикла будет выполняться только тогда, когда есть строки, в первую очередь, так что HasRows потенциально может оказаться ненужной, если вы не не хочу ничего не делайте. Вы все еще хотите использовать его, если вы хотите вернуть сообщение, как «результатов не найдено», конечно ..
Edit - Добавлена
Я думаю, что есть проблема и с линией
if(dr1["CarId"] != DBNull.Value)
Вы должны использовать, если метод DataReader IsDbNull().как в
if(dr.IsDbNull("CarId"))
Извините, я пропустил это в первый раз.
пс. В вашем коде есть огромная дыра в безопасности, потому что вы не используете параметры. Если я набрал "'; delete * from tb_car;" в текстовое поле вы потеряете все записи! Оу? =) – Will
Человек, я этого не понимал. @Gopal - он прав. Не забудьте также прочитать это: http://www.aspnet101.com/2007/03/parameterized-queries-in-asp-net/ – David