PDA

View Full Version : سوال: مشکل انتقال اطلاعات از دیتاگرید به تکست باکس



mahan77
پنج شنبه 05 آبان 1390, 22:07 عصر
با سلام. من وقتی می خواهم اطلاعات دیتا گرید را به تکست باکس های فرمم انتقال دهم در صورت خالی بودن مقدار بعضی از فیلدهای دیتاگریدویو، error می دهد. اگر راهنمایی کنید ممنون میشم. :خجالت:

sobaisobai
پنج شنبه 05 آبان 1390, 22:09 عصر
سلام دوست عزیز
Erorr چیه؟

mahan77
پنج شنبه 05 آبان 1390, 22:19 عصر
ارورش اینه دوست عزیز:
Object reference not set to an instance of an object.
البته اینه در اصل:
NullRefrenceExceoption was unhandled

sobaisobai
پنج شنبه 05 آبان 1390, 22:22 عصر
بی زحمت کدت رو میزاری

mahan77
پنج شنبه 05 آبان 1390, 22:24 عصر
var fe = newfrmEdit(); //تعریف فرم ویرایش
//انتقال اطلاعات ردیف جاریجدول به تکست های فرم ویرایش
fe.txPerCode.Text = dgvPersonel.CurrentRow.Cells["PerCode"].Value.ToString();
fe.txPerFName.Text = dgvPersonel.CurrentRow.Cells["PerFName"].Value.ToString();
fe.txPerLName.Text = dgvPersonel.CurrentRow.Cells["PerLName"].Value.ToString();
fe.txPerDadName.Text = dgvPersonel.CurrentRow.Cells["PerDadName"].Value.ToString();
fe.txPerIdNo.Text = dgvPersonel.CurrentRow.Cells["PerIdNo"].Value.ToString();

البته فقط در صورت خالی بودن مقدار جدول ارور می دهد.

Sp|R|T
پنج شنبه 05 آبان 1390, 22:26 عصر
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=VIDEOCLUP.mdb";
da = new OleDbDataAdapter("select * from film",cn);//جهت اتصال به جدول فیلم
OleDbCommandBuilder cb = new OleDbCommandBuilder(da);//DataAdapter بصورت اتوماتیک برای insert,delete,update ایجاد فرامین
da.Fill(dt);//DataAdapter با دادههای DataTable پر کردن
bs.DataSource = dt;//DataTable به bindingsource اتصال
dataGridView1.DataSource = bs;



private void recordview()
{
int pos;
pos = bs.CurrencyManager.Position;//شماره سطری از جدول که در آن قرار داریم
textBox1.Text = dt.Rows[pos]["fcode"].ToString();
textBox2.Text = dt.Rows[pos]["fname"].ToString();
textBox3.Text = dt.Rows[pos]["kargardan"].ToString();
textBox4.Text = dt.Rows[pos]["fyear"].ToString();
textBox5.Text = dt.Rows[pos]["price"].ToString();
textBox6.Text = dt.Rows[pos]["zaban"].ToString();
textBox7.Text = dt.Rows[pos]["tedad"].ToString();
}

ali_habibi1384
پنج شنبه 05 آبان 1390, 22:32 عصر
چون مقادير داخل سلول گريدت نال هست خطا ميده راه حلش اينه كه يا يه طوري اونا رو از حالت نال دربياري يا try catch يا چك كني اگه نال نبود به تكست باكسهات پاس بدي

sobaisobai
پنج شنبه 05 آبان 1390, 22:35 عصر
سلام
میتونی تو Try Catch بذاری
Form2 ff = new Form2();
ff.Show();
try
{
ff.textBox1.Text = dataGridView1.Rows[0].Cells[0].Value.ToString();
}
catch
{
MessageBox.Show("Empty");
}
موفق باشی

wolf_majid
پنج شنبه 05 آبان 1390, 22:36 عصر
var fe = newfrmEdit(); //تعریف فرم ویرایش
//انتقال اطلاعات ردیف جاریجدول به تکست های فرم ویرایش
fe.txPerCode.Text = dgvPersonel.CurrentRow.Cells["PerCode"].Value.ToString();
fe.txPerFName.Text = dgvPersonel.CurrentRow.Cells["PerFName"].Value.ToString();
fe.txPerLName.Text = dgvPersonel.CurrentRow.Cells["PerLName"].Value.ToString();
fe.txPerDadName.Text = dgvPersonel.CurrentRow.Cells["PerDadName"].Value.ToString();
fe.txPerIdNo.Text = dgvPersonel.CurrentRow.Cells["PerIdNo"].Value.ToString();

البته فقط در صورت خالی بودن مقدار جدول ارور می دهد.

فیلدهایی که اجازه خالی بودن رو دارند به صورت زیر ویرایش کنید

fe.txPerCode.Text = !string.IsNullOrEmpty(dgvPersonel.CurrentRow.Cells["PerCode"].Value.ToString())?
dgvPersonel.CurrentRow.Cells["PerCode"].Value.ToString():string.Empty ;