PDA

View Full Version : سوال: نمایش پیغام خطا هنگام باز شدن فرم



forodo
شنبه 23 فروردین 1393, 10:16 صبح
سلام
وقتی که فرمی رو می خوام باز کنم این ارور میاد:
http://up.iranfilm125.com/images/28353407236771259607.jpg
اینم متن کامل خطاست:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
at PJ.frmControlProzhe.frmControlProzhe_Load(Object sender, EventArgs e) in C:\Users\AliLP\Desktop\New folder (3) - Copy\PJ\frmControlProzhe.cs:line 26
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Form.OnCreateControl()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Mes sage& m)
at System.Windows.Forms.ContainerControl.WndProc(Mess age& m)
at System.Windows.Forms.Form.WmShowWindow(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
PJ
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Users/AliLP/Desktop/New%20folder%20(3)%20-%20Copy/PJ/bin/Debug/PJ.EXE
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
DevComponents.DotNetBar2
Assembly Version: 9.0.0.0
Win32 Version: 9.0.0.0
CodeBase: file:///C:/Users/AliLP/Desktop/New%20folder%20(3)%20-%20Copy/PJ/bin/Debug/DevComponents.DotNetBar2.DLL
----------------------------------------
Accessibility
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
System.Data
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Transactions
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Transactions/v4.0_4.0.0.0__b77a5c561934e089/System.Transactions.dll
----------------------------------------
System.EnterpriseServices
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.EnterpriseServices/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll
----------------------------------------
System.Numerics
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

hamid_hr
شنبه 23 فروردین 1393, 10:50 صبح
خب کدوم خط خطا میده
کد ها رو بزار

forodo
شنبه 23 فروردین 1393, 11:24 صبح
خب دقیقاً مشکل همینجاست.
با ویژوال که حتی برک پوینت هم میذارم عینهونه باقلوا نشون میده ولی با exe که اجرا می کنم اینطوری میشه.

hamid_hr
شنبه 23 فروردین 1393, 11:35 صبح
کد های رویداد لود فرمتو بزار

behzadkhan
شنبه 23 فروردین 1393, 11:42 صبح
با سلام

دوست عزیز

یعنی شما با شی ای دارید کار می کنید که ایجاد نشده است.

System.NullReferenceException: Object reference not set to an instance of an object.


و خطی که برنامه شما ایراد دارد


C:\Users\AliLP\Desktop\New folder (3) - Copy\PJ\frmControlProzhe.cs:line 26



با تشکر

forodo
شنبه 23 فروردین 1393, 11:49 صبح
کد های رویداد لود فرمتو بزار
private void frmControlProzhe_Load(object sender, EventArgs e)
{
getControlProzhe();
dataGridView1.Sort(dataGridView1.Columns["senddate"], ListSortDirection.Descending);

DataView view = (DataView)dataGridView1.DataSource;
view.Sort = "senddate DESC, sendtime DESC";
dataGridView1.DataSource = view;
}
رویداد اکتیو فرم
private void frmControlProzhe_Activated(object sender, EventArgs e)
{
dataGridView1.Rows.Clear();
getControlProzhe();
DataView view = (DataView)dataGridView1.DataSource;
view.Sort = "senddate DESC, sendtime DESC";
dataGridView1.DataSource = view;
}

با سلام

دوست عزیز

یعنی شما با شی ای دارید کار می کنید که ایجاد نشده است.

System.NullReferenceException: Object reference not set to an instance of an object.


و خطی که برنامه شما ایراد دارد


C:\Users\AliLP\Desktop\New folder (3) - Copy\PJ\frmControlProzhe.cs:line 26



با تشکر

خط 26 اینه:
view.Sort = "senddate DESC, sendtime DESC";

behzadkhan
شنبه 23 فروردین 1393, 12:41 عصر
دوست خوبم

اینو امتحان کن:

کد های رویداد frmControlProzhe_Activated را کامنت کن.(اجرا نشن)

با تشکر

forodo
یک شنبه 24 فروردین 1393, 07:37 صبح
این 3 خط رو که کامنتی می کنم درست می شه.
مگه چه ایرادی داره این 3تا خط.
این 3تا خط برای اینه که بتونم دیتاگریدویوم رو بر اساس 2 تا ستون مرتب کنم.
DataView view = (DataView)dataGridView1.DataSource;
view.Sort = "senddate DESC, sendtime DESC";
dataGridView1.DataSource = view;

behzadkhan
یک شنبه 24 فروردین 1393, 14:57 عصر
با سلام

اگه اشتباه نکردم شما قبلش دیتاگرید را خالی کردید و بعد می خواهید مرتبش کنید که جور در نمی آید.

با تشکر

forodo
یک شنبه 24 فروردین 1393, 15:44 عصر
این تابع getControlProzhe(); دیتاگرید رو پر می کنه.
بعد از اینکه پر شد من اون کدهارو نوشتم.
من دیتاگرید رو می ریزم تو ویو و بعد ویو رو سورت می کنم و بعد دوباره ویو رو می ریزم توی دیتاگرید.

behzadkhan
یک شنبه 24 فروردین 1393, 16:05 عصر
می تونم کد
getControlProzhe را ببینم.

با تشکر

forodo
یک شنبه 24 فروردین 1393, 17:43 عصر
private void getControlProzhe()
{
try
{

SqlConnection objconnection =
new SqlConnection(clsForms.ConnectionString);

SqlDataAdapter objDataAdapter = new SqlDataAdapter();

DataSet objDataSet = new DataSet();

objDataAdapter.SelectCommand = new SqlCommand();
objDataAdapter.SelectCommand.Connection = objconnection;

objDataAdapter.SelectCommand.CommandText = @"SELECT tblErsali.ID AS EID,tblDaryafti.ID AS DID,tblErsali.LetterID,SenderUserName
,Subject,tabaghe,jahat,mohlat,Dayes,ErjaDate,ErjaT ime,
bazgasht,peyrov,IsRead,IsVarede
FROM tblErsali INNER JOIN tblDaryafti
ON tblErsali.ID = tblDaryafti.LetterID
WHERE IsFonosht = 1 AND Archived = 0";

objconnection.Open();
objDataAdapter.Fill(objDataSet, "tblLetter1");
objconnection.Close();


int i = 0;
foreach (DataRow r in objDataSet.Tables["tblLetter1"].Rows)
{
dataGridView1.Rows.Add();
dataGridView1.Rows[i].Cells["ID"].Value = r["DID"].ToString();
if (r["LetterID"].ToString() == "")
dataGridView1.Rows[i].Cells["LetterID"].Value = r["EID"].ToString();
else
dataGridView1.Rows[i].Cells["LetterID"].Value = r["LetterID"].ToString();
dataGridView1.Rows[i].Cells["Sender"].Value = Program.chk.GetFullName(r["SenderUserName"].ToString());
dataGridView1.Rows[i].Cells["Subject"].Value = r["Subject"].ToString();
dataGridView1.Rows[i].Cells["type"].Value = r["tabaghe"].ToString();
dataGridView1.Rows[i].Cells["jahat"].Value = r["jahat"].ToString();
dataGridView1.Rows[i].Cells["mohlat"].Value = r["mohlat"].ToString() + " " + r["Dayes"].ToString();
//gridview.Rows[i].Cells["Day"].Value = r["Dayes"].ToString();
dataGridView1.Rows[i].Cells["senddate"].Value = r["ErjaDate"].ToString();
dataGridView1.Rows[i].Cells["sendtime"].Value = r["ErjaTime"].ToString();
dataGridView1.Rows[i].Cells["bazgasht"].Value = r["bazgasht"].ToString();
dataGridView1.Rows[i].Cells["peyrov"].Value = r["peyrov"].ToString();
dataGridView1.Rows[i].Cells["IsRead"].Value = Convert.ToBoolean(r["IsRead"]);
if (Convert.ToBoolean(r["IsVarede"]))
dataGridView1.Rows[i].Cells["varede"].Value = "وارده به شرکت";
else
dataGridView1.Rows[i].Cells["varede"].Value = "نامه داخلی";

i++;
}

objDataAdapter.SelectCommand.CommandText = @"SELECT tblDaryafti.ID AS DID,tblLetterVarede.ID,tblLetterVarede.LetterID,Se nder
,Subject,tabaghe,jahat,mohlat,Dayes,ErjaDate,ErjaT ime,
bazgasht,peyrov,IsRead,IsVarede
FROM tblLetterVarede INNER JOIN tblDaryafti
ON tblLetterVarede.ID = tblDaryafti.VaredeLetterID WHERE IsFonosht = 1 AND Archived = 0";
objconnection.Open();
objDataAdapter.Fill(objDataSet, "tblLetter2");
objconnection.Close();


foreach (DataRow r in objDataSet.Tables["tblLetter2"].Rows)
{
dataGridView1.Rows.Add();
dataGridView1.Rows[i].Cells["ID"].Value = r["DID"].ToString();
dataGridView1.Rows[i].Cells["LetterID"].Value = r["LetterID"].ToString();
dataGridView1.Rows[i].Cells["Sender"].Value = r["Sender"].ToString();
dataGridView1.Rows[i].Cells["Subject"].Value = r["Subject"].ToString();
dataGridView1.Rows[i].Cells["type"].Value = r["tabaghe"].ToString();
dataGridView1.Rows[i].Cells["jahat"].Value = r["jahat"].ToString();
dataGridView1.Rows[i].Cells["mohlat"].Value = r["mohlat"].ToString() + " " + r["Dayes"].ToString();
dataGridView1.Rows[i].Cells["senddate"].Value = r["ErjaDate"].ToString();
dataGridView1.Rows[i].Cells["sendtime"].Value = r["ErjaTime"].ToString();
dataGridView1.Rows[i].Cells["bazgasht"].Value = r["bazgasht"].ToString();
dataGridView1.Rows[i].Cells["peyrov"].Value = r["peyrov"].ToString();
dataGridView1.Rows[i].Cells["IsRead"].Value = Convert.ToBoolean(r["IsRead"]);
if (Convert.ToBoolean(r["IsVarede"]))
dataGridView1.Rows[i].Cells["varede"].Value = "وارده به شرکت";
else
dataGridView1.Rows[i].Cells["varede"].Value = "نامه داخلی";

i++;
}

objDataAdapter.SelectCommand.CommandText = @"SELECT tblLetterSadere.ID,tblLetterSadere.LetterID,sender UserName
,Subject,tabaghe,
bazgasht,peyrov
FROM tblLetterSadere WHERE tblLetterSadere.IsFonosht = 1 AND tblLetterSadere.ControlProzheFinish = 0";

// objDataAdapter.SelectCommand.CommandText = @"SELECT tblLetterSadere.ID,tblDaryafti.ID AS DID,tblLetterSadere.LetterID,senderUserName
// ,Subject,tabaghe,tblDaryafti.jahat,ErjaDate,ErjaTi me,
// bazgasht,peyrov,IsRead
// FROM tblLetterSadere INNER JOIN tblDaryafti
// ON tblLetterSadere.ID = tblDaryafti.SadereLetterID WHERE tblLetterSadere.IsFonosht = 1 AND tblLetterSadere.ControlProzheFinish = 0";
objconnection.Open();
objDataAdapter.Fill(objDataSet, "tblLetter3");
objconnection.Close();



foreach (DataRow r in objDataSet.Tables["tblLetter3"].Rows)
{
dataGridView1.Rows.Add();
dataGridView1.Rows[i].Cells["ID"].Value = r["ID"].ToString();
dataGridView1.Rows[i].Cells["LetterID"].Value = r["LetterID"].ToString();
if (dataGridView1.Rows[i].Cells["LetterID"].Value.ToString() == "")
dataGridView1.Rows[i].Cells["LetterID"].Value = "هنوز توسط دبیرخانه شماره نشده است";
dataGridView1.Rows[i].Cells["Sender"].Value = Program.chk.GetFullName(r["senderUserName"].ToString());
dataGridView1.Rows[i].Cells["Subject"].Value = r["Subject"].ToString();
dataGridView1.Rows[i].Cells["type"].Value = r["tabaghe"].ToString();
//dataGridView1.Rows[i].Cells["jahat"].Value = r["jahat"].ToString();
//dataGridView1.Rows[i].Cells["mohlat"].Value = "-";
//dataGridView1.Rows[i].Cells["senddate"].Value = r["ErjaDate"].ToString();
//dataGridView1.Rows[i].Cells["sendtime"].Value = r["ErjaTime"].ToString();
dataGridView1.Rows[i].Cells["bazgasht"].Value = r["bazgasht"].ToString();
dataGridView1.Rows[i].Cells["peyrov"].Value = r["peyrov"].ToString();
//dataGridView1.Rows[i].Cells["IsRead"].Value = Convert.ToBoolean(r["IsRead"]);
//dataGridView1.Rows[i].Cells["varede"].Value = "نامه صادره از شرکت";

i++;
}
}
catch (Exception)
{
//MessageBox.Show("در ارتباط با بانک اطلاعاتی مشکلی پیش آمده است", "خطا درون بانک اطلاعاتی",
// MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}

behzadkhan
یک شنبه 24 فروردین 1393, 19:01 عصر
با سلام

اینی که میگم را دقیقا جواب بده تا اگه بازم نشد مرحله مرحله بریم جلو تا ایراد را پیدا کنیم.

================================================== =====


DataView view = (DataView)dataGridView1.DataSource;


آیا جایی از برنامت به dataGridView1.DataSource مقدار دادی؟ اگه هست کجای برنامه است؟
dataGridView1.DataSource=؟
با trace رو همین خط همین خط برو ببین مقدارش چیه به من بگو .

اگه مقداری نداره ایراد از اونه.

با تشکر

forodo
دوشنبه 25 فروردین 1393, 09:20 صبح
نه هیچ جا نیستش.
DataView view = (DataView)dataGridView1.DataSource;

view.Sort = "senddate DESC, sendtime DESC";
dataGridView1.DataSource = view;



با تریس که می رم جلو اصلاً dataGridView1.DataSource خالیه و چیزی هم توی view ریخته نمی شه.

behzadkhan
دوشنبه 25 فروردین 1393, 12:36 عصر
نه هیچ جا نیستش.
DataView view = (DataView)dataGridView1.DataSource;

view.Sort = "senddate DESC, sendtime DESC";
dataGridView1.DataSource = view;



با تریس که می رم جلو اصلاً dataGridView1.DataSource خالیه و چیزی هم توی view ریخته نمی شه.


با توجه به اینی که الان گفتید.

از نظر من دو تا راه دارید:
============================================

1. توی او رویداد ها قبل از اینکه dataGridView1.DataSource را به یک ویو بریزید تمام سطرهای دیتاگریدویو را درون یک DataTable(البته نام ستون ها هم مشابه دیتاگرید تعریف شود) بریزید و سپس اون در dataGridView1.DataSource قرار دهید.
حالا dataGridView1.DataSource را در یک ویو قرار دهید.

2. اصلا بجای اینکه اطلاعات یک جدول را مستقیما در datagridview بریزید در یک DataTable بریزید و سپس اونو در dataGridView1.DataSource قرار دهید.

============================================

با تشکر