2011-12-24 29 views
5

Mặc dù tôi biết rằng có dữ liệu cho truy vấn SQL chính xác tôi đang thực hiện, thực tế là tôi đang thực hiện truy vấn SQL trực tiếp trên cơ sở dữ liệu, Tôi liên tục nhận được một ngoại lệ nói rằng không có dữ liệu tồn tại. Mã của tôi bên dưới:Lỗi: "Không có dữ liệu tồn tại cho hàng/cột" bằng cách sử dụng OdbcDataReader

 try 
     { 
      dbConnection.Open(); 

      // Process data here. 
      OdbcCommand dbCommand = dbConnection.CreateCommand(); 
      dbCommand.CommandText = "select forename from tblperson where personcode in (select clientcode from tblclient) and surname = '######'"; 
      OdbcDataReader dbReader = dbCommand.ExecuteReader(); 

      Console.WriteLine(dbReader.GetString(0)); 

      dbReader.Close(); 
      dbCommand.Dispose(); 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
     } 
     finally 
     { 
      dbConnection.Close(); 
     } 

Bất kỳ ai cũng có thể cho tôi lý do tại sao điều này xảy ra. Truy vấn sẽ trả lại một kết quả duy nhất và tôi hiện chỉ thực hiện việc này để đảm bảo rằng nó đang hoạt động, có vẻ như nó không xuất hiện. Mọi sự trợ giúp sẽ rất được trân trọng.

Trả lời

6

Sau khi ExecuteReader được gọi, người đọc được định vị trước bản ghi trả lại đầu tiên. Để đọc các bản ghi đầu tiên bạn cần phải gọi Read()

dbReader.Read() 

Hoặc tất nhiên nếu có nhiều hàng:

while (dbReader.Read()) 
+0

Ty. Điều đó rất hữu ích và hoạt động. – Dazzmaster1

+0

@ Dazzmaster1 - tuyệt vời - bạn được chào đón và chúc may mắn! –

+0

Một vấn đề đơn giản như vậy, một thông báo lỗi vô ích. –

Các vấn đề liên quan