Tôi có phương thức đang kết nối với cơ sở dữ liệu qua Odbc. Các thủ tục lưu trữ mà tôi là gọi có một giá trị trả về mà từ phía cơ sở dữ liệu là một 'Char'. Ngay bây giờ tôi đang lấy giá trị trả về đó như một chuỗi và sử dụng nó trong một câu lệnh if đơn giản. Tôi thực sự không thích những ý tưởng so sánh một chuỗi như thế này khi chỉ có hai giá trị có thể trở về từ cơ sở dữ liệu, 0 và 1.Cách chuyển đổi "0" và "1" thành false và true
OdbcCommand fetchCommand = new OdbcCommand(storedProc, conn);
fetchCommand.CommandType = CommandType.StoredProcedure;
fetchCommand.Parameters.AddWithValue("@column ", myCustomParameter);
fetchCommand.Parameters.Add("@myReturnValue", OdbcType.Char, 1)
.Direction = ParameterDirection.Output;
fetchCommand.ExecuteNonQuery();
string returnValue = fetchCommand.Parameters["@myReturnValue"].Value.ToString();
if (returnValue == "1")
{
return true;
}
Điều gì sẽ là cách thích hợp để xử lý tình trạng này. Tôi đã thử 'Convert.ToBoolean()' mà dường như như câu trả lời rõ ràng nhưng tôi chạy vào chuỗi 'không được công nhận là một Boolean hợp lệ. 'ngoại lệ bị ném. Tôi có thiếu một cái gì đó ở đây, hoặc là có một cách khác để làm cho '1' và '0' hành động như đúng và sai?
Cảm ơn!
Chính xác? Kiểm tra; Ngắn gọn? Kiểm tra; Thanh lịch? Kiểm tra. +1. – Earlz
Tôi khuyên bạn nên sử dụng 'return (returnValue! =" 0 ")'. Sẽ tự nhiên hơn khi '0' là' sai' và mọi số không bằng 0 là 'đúng'.Tất nhiên ở đây chúng tôi có trường hợp Chris sử dụng dây thay vì số, vì vậy bình luận này chỉ có một phần hợp lệ;) – Gacek
Nó luôn luôn là một cuộc tranh luận. 0 cũng có nghĩa là ERROR_SUCCESS có nghĩa là mọi thứ diễn ra tốt đẹp. Nhưng tôi đồng ý với Gacek rằng nó tự nhiên hơn. –