Tôi vừa mới cài đặt một cơ sở dữ liệu nhanh Oracle và đang cố gắng để đọc một số dữ liệu từ một bảng Tôi đã đặt trong đó:Sự cố đọc từ Oracle
using (OracleConnection conn = new OracleConnection("Data Source=localhost:1521/xe;Persist Security Info=True;User ID=SYSTEM;Password=SYSTEMPASSWORD"))
{
OracleCommand command = new OracleCommand("SELECT * FROM Persons WHERE Firstname = 'John'", conn);
conn.Open();
OracleDataReader reader = command.ExecuteReader();
try
{
while (reader.Read())
{
string strResult = reader.GetString(0);
}
}
catch (OracleException oex)
{
MessageBox.Show(oex.Message, "Oracle error");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error");
}
finally
{
reader.Close();
}
}
Trên while (reader.Read())
nó chỉ bỏ kể từ khi người đọc không không giữ bất kỳ dữ liệu nào. Chuyện gì thế? Connectionstring
? Tôi đã chạy cùng một SELECT
trong công cụ commandprompt được cài đặt với Oracle express và nó hoạt động tốt.
bạn có chắc là kết nối được mở đúng cách và ExecuteReader hoạt động mà không có ngoại lệ? bạn đã đặt một breakpoint và kiểm tra giá trị của đối tượng người đọc sau khi chuyển nhượng và trước khi vào vòng lặp while? –
Lựa chọn này có trả về bất kỳ hàng nào nếu bạn chạy nó trong sqlplus hay bất kỳ công cụ nào khác không? – igofed
Hãy thử chọn mà không có mệnh đề WHERE – Adauto