Tôi tin rằng câu hỏi này đã được hỏi vài tháng trước, nhưng tôi tin rằng hoàn cảnh của tôi khác và các quy tắc tương tự có thể không áp dụng.Lỗi Cơ sở dữ liệu: Không có hàng tại vị trí 0
Mỗi khi tôi thực hiện phương pháp này, cùng một lỗi sẽ xuất hiện. Không có hàng ở vị trí 0. Nếu tôi thay đổi [0] thành [1] hoặc [15]; Không có hàng tại [1] và vv Điều này có nghĩa là cơ sở dữ liệu của tôi thậm chí không kết nối? Tôi có nên viết một số loại câu lệnh if để xác định xem các hàng có ở đó không?
public bool UpdateOrderToShipped(string order)
{
orderNumber = order;
string batch = ConfigurationManager.AppSettings["SuccessfulOrderBatch"];
string statement = "UPDATE SOP10100 SET BACHNUMB = '"+ batch +"' WHERE SOPNUMBE = @SOPNUMBE";
SqlCommand comm = new SqlCommand(statement, connectionPCI);
comm.Parameters.Add("SOPNUMBE", orderNumber);
try
{
comm.Connection.Open();
comm.ExecuteNonQuery();
comm.Connection.Close();
}
catch(Exception e)
{
comm.Connection.Close();
KaplanFTP.errorMsg = "Database error: " + e.Message;
}
statement = "SELECT SOPTYPE FROM SOP10100 WHERE SOPNUMBE = @SOPNUMBE";
comm.CommandText = statement;
SqlDataAdapter da = new SqlDataAdapter(comm);
DataTable dt = new DataTable();
da.Fill(dt);
soptype = dt.Rows[0]["SOPTYPE"].ToString(); //errror here
return true;
}
Tại sao phương pháp của bạn là một bool? Nó chỉ trả về đúng – Andre
@Andre: một lý do rõ ràng là trong tương lai bắt được sẽ trả về một sai để người gọi sẽ biết liệu nó có thành công hay không. – Chris
@Chris, điều này là đúng trong một số phương pháp, nơi bạn mong đợi các lỗi xảy ra. Đây không phải là trường hợp. – Andre