Tôi có một máy tính xách tay mới tại nơi làm việc và mã hoạt động trước đó trong tuần không hoạt động hôm nay.C# chuỗi phân tích cú pháp "0" thành số nguyên
Mã mà làm việc trước khi là, đơn giản hóa:
while (dr.Read())
{
int i = int.Parse(dr.GetString(1))
}
Bây giờ nó không thành công khi giá trị cơ sở dữ liệu là 0. Đôi khi, nhưng không đáng tin cậy, điều này sẽ làm việc thay vì:
while (dr.Read())
{
int i = Convert.ToInt32(dr["FieldName"]))
}
Am I thiếu một cái gì đó ngu ngốc?
Rất kỳ quặc, ReSharper cũng có rất nhiều lỗi lạ với cùng thông báo lỗi mà tôi nhận được với mã ở trên: "chuỗi đầu vào không đúng định dạng". (Bắt đầu trước khi tôi thậm chí tải một dự án.)
Bất kỳ ý tưởng nào? Bất cứ ai có bất kỳ vấn đề SP? Tôi đã cố gắng để đảm bảo tất cả các SP của tôi đã được cập nhật khi tôi có máy.
EDIT: Tôi hiểu cách sử dụng Try.Parse và xử lý lỗi. Mã ở đây được đơn giản hóa. Tôi đang đọc các trường hợp thử nghiệm từ một bảng cơ sở dữ liệu. Cột này chỉ có giá trị 0, 1 và 2. Tôi đã xác nhận điều đó. Tôi đã phá vỡ này xuống đặt trường cơ sở dữ liệu vào một biến chuỗi s và sau đó cố gắng int.Parse (s). Mã hoạt động vào đầu tuần này và cơ sở dữ liệu không thay đổi. Điều duy nhất đã thay đổi là môi trường của tôi.
Để đơn giản hóa hoàn toàn vấn đề, dòng mã này ném một ngoại lệ ("chuỗi đầu vào là không đúng định dạng"):
int.Parse("0");
EDIT: Cảm ơn tất cả mọi người vì đã giúp tôi giải quyết vấn đề này! Giải pháp đã buộc đặt lại cài đặt ngôn ngữ của tôi.
loại dữ liệu nào là cột bảng? –
Trường có cho phép giá trị null không? –
Nếu bạn tạo một ứng dụng mới với dòng duy nhất của mã thực thi tùy chỉnh là int.Parse ("0"); và nó đang ném một lỗi, sau đó tôi nghĩ rằng bạn có thể có một vấn đề lớn hơn. –