01/10/2018, 10:08

Select có điều kiện trong C#, nó không hiển thị được!

Mình viết câu lệnh SQL này, thì mình chạy được.

SELECT r.RentID,c.CustomerName,v.VehicleName,r.[Hours], r.[Hours] * v.Rent AS Total FROM Rent as r
INNER JOIN Customer AS c ON r.CustomerID = c.CustomerID
INNER JOIN Vehicle AS v ON r.VehicleID = v.VehicleID

Còn khi mình viết trong C# thì nó không hiển thị, dù mấy câu lệnh SQL như Add, Update, Delete thì chạy bình thường.
Mình muốn hỏi là mình sai chỗ nào và sửa như thế nào. Cám ơn nhiều nha.

public IList getRents()
{
IList result = new List();
try
{
SqlConnection con = new SqlConnection(sCon);
String query = “SELECT r.RentID,c.CustomerName,v.VehicleName,r.[Hours], r.[Hours] * v.Rent AS Total FROM Rent as r INNER JOIN Customer AS c ON r.CustomerID = c.CustomerID INNER JOIN Vehicle AS v ON r.VehicleID = v.VehicleID”;
//String query = “SELECT * FROM Rent”;
SqlCommand com = new SqlCommand(query, con);
con.Open();
SqlDataReader reader = com.ExecuteReader();
while (reader.Read())
{
Rent r = new Rent();
r.rentID = (int)reader[0];
r.customerID = (int)reader[1];
r.vehicleID = (int)reader[2];
r.hours = (int)reader[3];
//r.total = (int)reader[4];
result.Add®;
}
con.Close();
}
catch (Exception ex)
{
ex.ToString();
}
return result;
}

Tuan Bui viết 12:20 ngày 01/10/2018

Chào bạn @Magensa. Theo như đoạn code ở trên mà bạn đưa ra thì mình nhận thấy rằng bạn đặt câu lệnh con.Open() sau câu lệnh SqlCommand com = new SqlCommand(query, con); bởi vì code sẽ được biên dịch tuần tự từ trên xuống dưới nên khi thực thi SqlDataReader reader = com.ExecuteReader(); biến reader sẽ nhận giá trị null đây chính là lý do mà khiến cho Query không có kết quả trả về. Bạn phải đặt câu lệnh con.Open() sau khi khai báo SqlConnection con = new SqlConnection(sCon); nhé.

Bài liên quan
0