PDA

View Full Version : سوال: اررور در BindingContext



Me3ter
یک شنبه 05 شهریور 1391, 00:54 صبح
سلام من یه کد نوشتم که با تغییر کردن پزیشن سطر ، سطری رو که انتخاب میکنید مقدار ستون رو که می خوای ذخیره مینه ولی وقتی اجرا میکنم تو گرید ویو پزیشن رو تغییر میدم این اررور رو میده
اینم خود کد لطفا راهنمایی کنید
Error=Specified cast is not valid.
public void filldgv()
{
dt = new ntt().Selectallrows();
dgv.DataSource = dt;
dgv.Columns[0].Visible = true;
dgv.Columns[1].HeaderText = "نام";
dgv.Columns[2].HeaderText = "فامیل";

this.BindingContext[dt].PositionChanged+= new EventHandler(Form1_PositionChanged);
}
void Form1_PositionChanged(object sender,EventArgs e)
{
if (dt.DefaultView.Count >= 0)
{
currentpersonid = (decimal)dt.DefaultView[this.BindingContext[dt].Position]["personid"];
}
else
{
currentpersonid = -1;
}

}

Me3ter
یک شنبه 05 شهریور 1391, 02:54 صبح
کسی نیست راهنمایی کنه؟

hakim22
یک شنبه 05 شهریور 1391, 13:13 عصر
خطا مربوط به Casting میشه.
تا جایی که من میبینم شما یکجا از Casting استفاده کردید اونم قسمت decimal است.
بهتره بزاریدش روی long احتمالا مشکل شما حله !

( در ضمن decimal یک مقدار اعشاری 128بیتیه و نمیشه کست کردش روی آی دی هایی از جنس اعداد صحیح !)

Me3ter
یک شنبه 05 شهریور 1391, 13:32 عصر
سلام مرسی از راهنماییتون مشکل کستینگ رو حل کردم توی دیتا بیس نوع داده ای رو تغیر دادم مشکل حل شد
فقط الا جای دیگه به مشکل برخوردم واسه اپدیت کردن اطلاعات با کد بالا شماره کلید اصلی سطر رو میگیرم و میرستم به یه متد برای نمایش که این اررور رو میده error title:nullrefrenceexception was unhanled
error:Object reference not set to an instance of an object.
private void btupdate_Click(object sender, EventArgs e)
{
if(dt.DefaultView.Count>0)
{
new Form2(currentpersonid).ShowDialog();
filldgv();
}

}
decimal personid=-1 ;
public Form2()
{
InitializeComponent();
}
public Form2(decimal personid)
{
InitializeComponent();
this.personid = personid;
var row = new ntt().selectrows(personid).Rows[0];

txtname.Text = row[1]+"";
txtlastname.Text=row[2]+"";

}

hakim22
دوشنبه 06 شهریور 1391, 08:10 صبح
این خطا به معنی استفاده از یک شی بدون ساختن نمونه از آن است . یا میتونه به علت این باشه که شی شما null هست و چیزی توش نگذاشتید.

شما باید خط دقیقی که خطا در اونجا پیش اومده پیدا کنید. اشیای اون خط رو بررسی کنید و ببینید کدام یکی رو بدون استفاده از کلمه ی کلیدی new استفاده کرده اید یا اینکه مقادیر ورودی بهش پوچ بوده.

در کدی که اینجا گذاشتید من شی پوچ یا ناقص نمی بینم و احتمالا باید در filldgv خطا پیش اومده باشه.

حتما مباحث مربوط به خطا یابی و debugging رو در کتابهای آموزش برنامه نویسی مطالعه بفرمایید.

hakim22
دوشنبه 06 شهریور 1391, 08:14 صبح
این خطا به معنی استفاده از یک شی بدون ساختن نمونه از آن است . یا میتونه به علت این باشه که شی شما null هست و چیزی توش نگذاشتید.

شما باید خط دقیقی که خطا در اونجا پیش اومده پیدا کنید. اشیای اون خط رو بررسی کنید و ببینید کدام یکی رو بدون استفاده از کلمه ی کلیدی new استفاده کرده اید یا اینکه مقادیر ورودی بهش پوچ بوده.

در کدی که اینجا گذاشتید من شی پوچ یا ناقص نمی بینم و احتمالا باید در filldgv خطا پیش اومده باشه.

حتما مباحث مربوط به خطا یابی و debugging رو در کتابهای آموزش برنامه نویسی مطالعه بفرمایید.