PDA

View Full Version : رخ دادن پی در پی ارور Object reference not set to an instance of an object



amir11205
یک شنبه 10 اردیبهشت 1391, 11:07 صبح
سلام به همه دوستان عزیز
من تو برنامم امروز با اتفاقی روبرو شدم که قبلا برای من نیفتاده بود
در واقع تو یکی از فرم های برنامم وقتی هیچ تغییری ایجاد نمیکنم بدون هیچ مشکلی برنامه اجرا میشه اما وقتی کوچکترین تغییری مثل تغییر سایز یک Button در فرم مورد نظر ایجاد میکنم موقع اجرا برنامه و بعد از اون در هر زمانی که اون فرم و پنجره کد مربوط به اون فرم باز میکنم به صورت پی در پی با خطای زیر روبرو میشم و برنامه اجرا میشه اما اون تغییر ایجاد شده در زمان اجرای برنامه دیده نمیشه
Object reference not set to an instance of an object
اینم برنامه من:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace prcmoshanir.Forms
{
public partial class PersonelRezumeReportFrm : Form
{
public PersonelRezumeReportFrm()
{
InitializeComponent();
}

SqlConnection con = new SqlConnection();
DataSet ds = new DataSet();
int[] persId = new int[50];
bool selected = false;

public void tableSelect()
{
string strsql;
strsql = "SELECT pe_id, fname, lname, basejob, baseorg from personel where pe_id>0 order by degree ";
ds.Clear();
ds = DBClass.SelectCommand(con, strsql, "personel");
personelDgv.DataBindings.Clear();
personelDgv.DataBindings.Add(new Binding("DataSource", ds, "personel"));

}

private void PersonelRezumeReportFrm_Load(object sender, EventArgs e)
{
tableSelect();
}

private void addBtn_Click(object sender, EventArgs e)
{
bool flag = false;
int count = printList.Items.Count;
if (personelDgv.Rows.Count > 0)
{
for (int i = 0; i < 50; i++)
if (Convert.ToInt32(personelDgv.CurrentRow.Cells[0].Value.ToString()) == persId[i])
{
flag = true;
break;
}
if (!flag)
{
persId[count] = Convert.ToInt32(personelDgv.CurrentRow.Cells[0].Value.ToString());
printList.Items.Add(personelDgv.CurrentRow.Cells[1].Value.ToString() + " " + personelDgv.CurrentRow.Cells[2].Value.ToString());
}
}
}

private void delBtn_Click(object sender, EventArgs e)
{
if (selected)
{
int index = printList.SelectedIndex;
printList.Items.Remove(printList.SelectedItem);
for (int i = index; i < 49; i++)
persId[i] = persId[i + 1];
}
}

private void printList_SelectedIndexChanged(object sender, EventArgs e)
{
selected = true;
}

private void personelDgv_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
addBtn_Click(sender, e);
}

private void previewBtn_Click(object sender, EventArgs e)
{
for (int i = 0; persId[i] != 0; i++)
{
string strsql = "SELECT [pe_id], [fname], [lname], dbo.GetShamsiDate([birthdayDate]) AS birthdayDate, dbo.GetShamsiDate([employmentdate]) AS employmentdate, [habitat], [birthlocate], [basejob], [baseorg], [baseadj], [subjob], [suborg], [subadj], [degree], [sex], [supervisor] FROM [moshanir.prc].[dbo].[personel] where pe_id=" + this.persId[i] + " and pe_id<>0";
DBClass.previewData(strsql, "personel", rezumeReport);
strsql = "SELECT [picture] FROM [moshanir.prc].[dbo].[personelpic] where pe_id=" + this.persId[i] + " and pe_id<>0";
DBClass.previewData(strsql, "personelpic", rezumeReport);
strsql = "SELECT [studylead], [getleadyear], [univercityname], [course], [ism], [country] FROM [moshanir.prc].[dbo].[academicback] where pe_id=" + this.persId[i] + " and pe_id<>0 order by getleadyear";
DBClass.previewData(strsql, "academicback", rezumeReport);
strsql = "SELECT [langname], [tasalot] FROM [moshanir.prc].[dbo].[language] where pe_id=" + this.persId[i] + " and pe_id<>0";
DBClass.previewData(strsql, "language", rezumeReport);
strsql = "SELECT [clubname], [memberyear], [membertype] FROM [moshanir.prc].[dbo].[membership] where pe_id=" + this.persId[i] + " and pe_id<>0 order by memberyear";
DBClass.previewData(strsql, "membership", rezumeReport);
strsql = "SELECT [beginyear], [endyear], [orgname], [job], [actcomment] FROM [moshanir.prc].[dbo].[technicalback] where pe_id=" + this.persId[i] + " and pe_id<>0 order by beginyear";
DBClass.previewData(strsql, "technicalback", rezumeReport);
strsql = "SELECT [periodname], [year], [duration], [orgname] FROM [moshanir.prc].[dbo].[eduperiod] where pe_id=" + this.persId[i] + " and pe_id<>0 order by year";
DBClass.previewData(strsql, "eduperiod", rezumeReport);
strsql = "SELECT [artname], [artyear] FROM [moshanir.prc].[dbo].[articles] where pe_id=" + this.persId[i] + " and pe_id<>0 order by artyear";
DBClass.previewData(strsql, "articles", rezumeReport);
strsql = "SELECT [softname], [tasalot] FROM [moshanir.prc].[dbo].[softwarelist] where pe_id=" + this.persId[i] + " and pe_id<>0";
DBClass.previewData(strsql, "softwarelist", rezumeReport);
strsql = "SELECT [skillname], [skillcomment] FROM [moshanir.prc].[dbo].[skills] where pe_id=" + this.persId[i] + " and pe_id<>0";
DBClass.previewData(strsql, "skills", rezumeReport);
rezumeReport.SetParameterValue("dateParam", Convert.ToString(Classes.Date.year_shamsi) + "/" + Convert.ToString(Classes.Date.month_shamsi) + "/" + Convert.ToString(Classes.Date.day_shamsi));
rezumeReport.Show();
}
}

private void peIdSerMTxt_TextChanged(object sender, EventArgs e)
{
string strsql = "select pe_id, fname, lname, basejob, baseorg from personel where pe_id like '%" + peIdSerMTxt.Text + "%' AND lname like N'%" + lnameSerTxt.Text + "%' AND basejob like N'%" + baseJobSerTxt.Text + "%' AND baseorg like N'%" + baseOrgSerTxt.Text + "%' AND pe_id>0 order by degree";
ds = DBClass.SelectCommand(con, strsql, "personel");
personelDgv.DataBindings.Clear();
personelDgv.DataBindings.Add(new Binding("DataSource", ds, "personel"));
}

private void lnameSerTxt_TextChanged(object sender, EventArgs e)
{
string strsql = "select pe_id, fname, lname, basejob, baseorg from personel where pe_id like '%" + peIdSerMTxt.Text + "%' AND lname like N'%" + lnameSerTxt.Text + "%' AND basejob like N'%" + baseJobSerTxt.Text + "%' AND baseorg like N'%" + baseOrgSerTxt.Text + "%' AND pe_id>0 order by degree";
ds = DBClass.SelectCommand(con, strsql, "personel");
personelDgv.DataBindings.Clear();
personelDgv.DataBindings.Add(new Binding("DataSource", ds, "personel"));
}

private void baseJobSerTxt_TextChanged(object sender, EventArgs e)
{
string strsql = "select pe_id, fname, lname, basejob, baseorg from personel where pe_id like '%" + peIdSerMTxt.Text + "%' AND lname like N'%" + lnameSerTxt.Text + "%' AND basejob like N'%" + baseJobSerTxt.Text + "%' AND baseorg like N'%" + baseOrgSerTxt.Text + "%' AND pe_id>0 order by degree";
ds = DBClass.SelectCommand(con, strsql, "personel");
personelDgv.DataBindings.Clear();
personelDgv.DataBindings.Add(new Binding("DataSource", ds, "personel"));
}

private void baseOrgSerTxt_TextChanged(object sender, EventArgs e)
{
string strsql = "select pe_id, fname, lname, basejob, baseorg from personel where pe_id like '%" + peIdSerMTxt.Text + "%' AND lname like N'%" + lnameSerTxt.Text + "%' AND basejob like N'%" + baseJobSerTxt.Text + "%' AND baseorg like N'%" + baseOrgSerTxt.Text + "%' AND pe_id>0 order by degree";
ds = DBClass.SelectCommand(con, strsql, "personel");
personelDgv.DataBindings.Clear();
personelDgv.DataBindings.Add(new Binding("DataSource", ds, "personel"));
}
}
}

amir11205
یک شنبه 10 اردیبهشت 1391, 13:42 عصر
دوستان عزیز منتظر یاری سبزتان هستیم

Hossenbor
یک شنبه 10 اردیبهشت 1391, 14:06 عصر
دوسته من اون خطی که خطا داد کدومه این خطا مربوط میشه به مقدار دهی یک شی که تعریف نشده و باید تعریف شود تا بتوان از ان استفاده کرد

amir11205
یک شنبه 10 اردیبهشت 1391, 15:32 عصر
دوسته من اون خطی که خطا داد کدومه این خطا مربوط میشه به مقدار دهی یک شی که تعریف نشده و باید تعریف شود تا بتوان از ان استفاده کرد
سلام
اگه به کد هم دقت کنی می بینی متغیر تعریف نشده ای نیست که مقداردهی کرده باشم
در ضمن این ارور تو ارور لیست ظاهر نمیشه بلکه یه پنجره باز میشه و این ارورو نشون میده و دیگه اینکه زمانی روی فرم یه تغییر کوچیک ایجاد می کنم این مشکل پیش میاد.

Hossenbor
یک شنبه 10 اردیبهشت 1391, 16:23 عصر
نشون نمیده رو کدوم خطه

amir11205
یک شنبه 10 اردیبهشت 1391, 19:50 عصر
دوستان کسی نیس بگه چیکار باید بکنم؟

amir11205
یک شنبه 10 اردیبهشت 1391, 21:31 عصر
دوستان مشکلم حل شد
دلیل این پیغام استفاده از ابزار گزارشگری Fast Report کرک شده بود که با unistall کردن Fast Report و نصب مجددش اما بدون اعمال کرکش درست شد
از تمام دوستان تشکر میکنم
خوش باشین

WgsFahime
دوشنبه 01 خرداد 1391, 13:47 عصر
سلا م خسته نباشید من یه گزارش چند صفحه ای با فست ریبورت درست کردم وقتی میخوام با نوار بالا ی گزارش مثله انتخاب و نمایش صفحه مختلف گزارش یا خروحی به فرمت اکسل از برنام بگیرم
خطای زیر میادObject reference not set to an instance of an object.

به نظر شما مشکل کجاست لطفا راهنمایی نمایید