Chào các anh chị:
Em đang học winform c#, khi học về datagridview và đổ dữ liệu vào từ database sử dụng linq.
Khi sửa 1 ô trong datagridview thì em bị lỗi :
System.NullReferenceException: Object reference not set to an instance of an object.
Lý do là khi có ô dữ liệu trống thì sẽ xuất hiện lỗi trên do không chuyển sang kiểu string được nên để sửa lỗi này, em thêm dòng code này vào:
if (dgv1.SelectedCells[0].OwningRow.Cells["state"].Value.ToString() == null)
edit.state = null;
else
edit.state = dgv1.SelectedCells[0].OwningRow.Cells["state"].Value.ToString();
Để kiểm tra nếu ô state có trống hay không, nếu trống thì sẽ gán edit.State = null. Nhưng vẫn bị lỗi, khi chạy debug thì hàm dgv1.SelectedCells[0].OwningRow.Cells["state"].Value.ToString() có value
Anh chị giúp em sửa lỗi này
Source Code:
using (QuanLyKhachSanDataContext db = new QuanLyKhachSanDataContext())
{
string id = dgv1.SelectedCells[0].OwningRow.Cells["id"].Value.ToString();
string Name = dgv1.SelectedCells[0].OwningRow.Cells["name"].Value.ToString();
string Address = dgv1.SelectedCells[0].OwningRow.Cells["address"].Value.ToString();
//string State = dgv1.SelectedCells[0].OwningRow.Cells["state"].Value.ToString();
s_customer edit = db.s_customers.Where(p => p.id.Equals(id) == true).Single();
edit.id = id;
edit.name = Name;
edit.address = Address;
if (dgv1.SelectedCells[0].OwningRow.Cells["state"].Value.ToString() == null)
edit.state = "null";
else
edit.state = dgv1.SelectedCells[0].OwningRow.Cells["state"].Value.ToString();
db.SubmitChanges();
dgv1.DataSource = from u in db.s_customers
select u;
}