1 ضمیمه
برطرف کردن خطای NullRefrenceException
باسلام خدمت دوستان
یک فرم اصلی دارم که باهاش داده هامو اضافه میکنم. جهت ویرایش، سطری از DataGridView، فرم جستجوم رو، با استفاده از کد زیر میفرستم به فرم اصلیم:
private void dgvCommod_CellClick(object sender, DataGridViewCellEventArgs e)
{
txtCommodType.Text = dgvCommod.CurrentRow.Cells["CommodType"].Value.ToString();
txtAbbrev.Text = dgvCommod.CurrentRow.Cells["CommodAbbrev"].Value.ToString();
}
با کد زیر تو Form Load صفحه اصلیم اطلاعاتو میگیرم و تو TextBox نمایش میدم:
public DataGridViewRow dgView;
private void frmAddCommodity_Load(object sender, EventArgs e)
{
txtName.Text = dgView.Cells[0].Value.ToString();
txtTyp.Text = dgView.Cells[1].Value.ToString();
}
با این روش بدرستی رکوردهای دلخوام منتقل میشه، ولی وقتی فرم اصلیم رو باز میکنم برا درج اطلاعات با خطای زیر مواجه میشم:
ضمیمه 149483
میشه راهنماییم کنید ک چجوری این مشکل رو رفع کنم؟
باتشکر از تمامی دوستان
نقل قول: برطرف کردن خطای NullRefrenceException
میتونی قبل استفاده از یک مقدار از NULL بودن اون مطلع بشی و اگر NULL بود یک مقدار جایگزین نماش بده و در غیراینصورت خود مقدار رو
Convert.IsDBNull(YourValue)
نقل قول: برطرف کردن خطای NullRefrenceException
کد رو به این صورت تغییر بده و نتیجه رو گزارش بده:
public DataGridViewRow dgView;
private void frmAddCommodity_Load(object sender, EventArgs e)
{
txtName.Text = dgView.Cells[0].Value?.ToString();
txtTyp.Text = dgView.Cells[1].Value?.ToString();
}
1 ضمیمه
نقل قول: برطرف کردن خطای NullRefrenceException
نقل قول:
نوشته شده توسط
مهدی کرامتی
کد رو به این صورت تغییر بده و نتیجه رو گزارش بده:
public DataGridViewRow dgView;
private void frmAddCommodity_Load(object sender, EventArgs e)
{
txtName.Text = dgView.Cells[0].Value?.ToString();
txtTyp.Text = dgView.Cells[1].Value?.ToString();
}
از tostring. خطا میگیره
ضمیمه 149486
نقل قول: برطرف کردن خطای NullRefrenceException
نوع داده (Data Type) ردیف هایی که تو گرید پر میشه چیه؟
با استفاده از اون می توانید از پراپرتی DataBoundItem به جای Cell ها استفاده کنید، مثال:
var data = dgView.CurrectRow.DataBoundItem as YourDataType;
txtName.Text = data.Name;
txtTyp.Text = data.Type;