PDA

View Full Version : سوال: مشکل اجرایی نشدن فایل سی شارپ



esikley
شنبه 08 مهر 1391, 08:57 صبح
با سلام خدمت دوستان عزیز
عرضم به حضورتون که یه پروژه هست ازش خروجی exe گرفتم و رو دوتا سیستم اجرا کردم مشکلی نداشت ولی رو
سیستم دوستم که میخواستم اجراش کنم با این اررور مواجه شدم لازم به ذکر است که ویندوز تازه نصب کردم رو سیستمش و بعدش ویژوال استدیو نصب کردم گفتم برای اجرا برنامه دیگه مشکل نداشته باشه خب ولی با این اررور مواجه شدم ممنون میشم کمک کنید

FastCode
شنبه 08 مهر 1391, 09:48 صبح
تصادفاً نباید کدتون رو بزارید؟

esikley
شنبه 08 مهر 1391, 18:27 عصر
سلام مجدد این کدش مشکل نداره رو دوتا سیستم تست کردم اطلاعات ثبت میکنه ولی رو سیستم سوم که تازه ویندوز نصب کردم وبعدش ویژوال استدیو نصب کردم بعدش این پروژه رو نصب کردم که واسه ثبت داده اررور میگیره-برای ویرایش و حذف هم همین اررور میگیره
ولی چشم شما بهتر میدونید
این کد:

private void button1_Click(object sender, EventArgs e)
{
SqlConnection con1 = new SqlConnection();
con1.ConnectionString = ("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\Database3.mdf;Integrated Security=True;User Instance=True");
con1.Open();
SqlCommand c1 = new SqlCommand();
c1.Connection = con1;
string scom = "insert into esd (telh,sim,lname,fname,namep,codm,tt,codp,ostan,cit y,street,pelak,onvan,jens,telm,telk,onvansh,daraje ,ax)values(N'{0}',N'{1}',N'{2}',N'{3}',N'{4}',N'{5 }',N'{6}',N'{7}',N'{8}',N'{9}',N'{10}',N'{11}',N'{ 12}',N'{13}',N'{14}',N'{15}',N'{16}',N'{17}',N'{18 }')";
scom = string.Format(scom, textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text, textBox6.Text, textBox7.Text, textBox8.Text, comboBox1.SelectedItem.ToString(), textBox9.Text, textBox10.Text, textBox11.Text, comboBox2.SelectedItem.ToString(), comboBox3.SelectedItem.ToString(), textBox12.Text, textBox15.Text, comboBox4.SelectedItem.ToString(), comboBox5.SelectedItem.ToString(),textBox13.Text );
this.Text = picpath;
c1.CommandText = scom;


c1.ExecuteNonQuery();
MessageBox.Show("اطلاعات با موفقیت ثبت شد");

//برای نمایش در دیتاگرید در همان لحظه
SqlCommand c2 = new SqlCommand();
c2.Connection = con1;
c2.CommandText = "select * from esd";
//OleDbDataAdapter ad = new OleDbDataAdapter();
SqlDataAdapter ad = new SqlDataAdapter();

ad.SelectCommand = c2;
DataTable dt = new DataTable();
ad.Fill(dt);
da1.DataSource = dt;

//برای نمایش در دیتاگرید در همان لحظه
con1.Close();
}

FastCode
یک شنبه 09 مهر 1391, 02:01 صبح
کدتون مشکلی نداره.فقط باید به کاربر هشدار بده که combobox ها خالی هستند.

SharpSabre
یک شنبه 09 مهر 1391, 10:56 صبح
خطای برنامه از Button2 هست لطفا کدهای اون رو بزارید و
برای عبور از این خطا هم از دستور Try ، Catch استفاده کنید تا برنامه بکارش ادامه بده ! و داخل Catch هم پیغام مناسب قرار بدید.

esikley
دوشنبه 10 مهر 1391, 01:08 صبح
فکر کنم بد توضیح دادم دوستان متوجه نشدن
برنامه وقتی از طریق سورس کد میزنم رو اجرا یعنی داحل خود ویژوال استدیو میزنم کار میکنه مشکلی نمیگیره ولی وقتی فایل خروجی اجرایی برای نصب میگیرم رو سیستم دیگه جواب نمیده یعنی داده ثبت نمیکنه

FastCode
دوشنبه 10 مهر 1391, 15:35 عصر
اگر یک دور کدتون رو بخوندی متوجه میشید تنها dereference های کدتون combobox ها هستن


در ضمن نام تاپیکتون به هیچ شکل ممکن در زبان هیچ کدام از 195 کشور دنیا هیچ گونه ربطی به سوالتون نداره.
برداشتی که از این موضوع میشه میتونه این باشه:gmcs/csc" هدر ه PE رو درست نمیسازه." نه "[MSSQL][WinForms] NullReferenceException در Insert"

esikley
دوشنبه 10 مهر 1391, 19:15 عصر
این سورس کد تصحیح شده
میشه از خود ویژوال استدیو باشه ؟

private void button1_Click(object sender, EventArgs e)
{
if (textBox13.Text == "")
{
MessageBox.Show("لطفا عکس مورد نظر را انتخاب کنید ");
}
else if (comboBox1.Text=="")
{
MessageBox .Show ("لطفا استان مورد نظر را انتخاب فرمایید");
}
else if (comboBox2.Text=="")
{
MessageBox.Show("لطفا عنوان را انتخاب فرمایید");
}

else if (comboBox3.Text == "")
{
MessageBox.Show("لطفا جنسیت را انتخاب فرمایید");
}
else if (comboBox4.Text == "")
{
MessageBox.Show("لطفا عنوان شغلی را انتخاب فرمایید");
}
else if (comboBox5.Text == "")
{
MessageBox.Show("لطفا درجه را مشخص فرمایید");

}
else

{



SqlConnection con1 = new SqlConnection();
con1.ConnectionString = ("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\Database3.mdf;Integrated Security=True;User Instance=True");
con1.Open();
SqlCommand c1 = new SqlCommand();
c1.Connection = con1;
string scom = "insert into esd (telh,sim,lname,fname,namep,codm,tt,codp,ostan,cit y,street,pelak,onvan,jens,telm,telk,onvansh,daraje ,ax)values(N'{0}',N'{1}',N'{2}',N'{3}',N'{4}',N'{5 }',N'{6}',N'{7}',N'{8}',N'{9}',N'{10}',N'{11}',N'{ 12}',N'{13}',N'{14}',N'{15}',N'{16}',N'{17}',N'{18 }')";
scom = string.Format(scom, textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text, textBox6.Text, textBox7.Text, textBox8.Text, comboBox1.SelectedItem.ToString(), textBox9.Text, textBox10.Text, textBox11.Text, comboBox2.SelectedItem.ToString(), comboBox3.SelectedItem.ToString(), textBox12.Text, textBox15.Text, comboBox4.SelectedItem.ToString(), comboBox5.SelectedItem.ToString(), textBox13.Text);
this.Text = picpath;
c1.CommandText = scom;


c1.ExecuteNonQuery();
MessageBox.Show("اطلاعات با موفقیت ثبت شد");

//برای نمایش در دیتاگرید در همان لحظه
SqlCommand c2 = new SqlCommand();
c2.Connection = con1;
c2.CommandText = "select * from esd";
//OleDbDataAdapter ad = new OleDbDataAdapter();
SqlDataAdapter ad = new SqlDataAdapter();

ad.SelectCommand = c2;
DataTable dt = new DataTable();
ad.Fill(dt);
da1.DataSource = dt;

//برای نمایش در دیتاگرید در همان لحظه
con1.Close();
}
}

FastCode
دوشنبه 10 مهر 1391, 20:27 عصر
درست شد؟


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

esikley
سه شنبه 11 مهر 1391, 07:55 صبح
الان من باید چیکار کنم که این مشکل حل بشه

hakim22
سه شنبه 11 مهر 1391, 09:09 صبح
این خطا زمانی روی میده که یکی از متغیرهایی که در برنامه استفاده کرده اید پوچ باشه و مقدار نداشته باشه.
بعضی وقتها شما یک شی رو فقط تعریف می کنید . مثل :

SqlConnection con1

اگر کد بخش New رو ننوشته باشید. حتما باید قبل از استفاده ازش در یک جایی بهش مقدار خاصی رو تخصیص داده باشید.
اینکه این مشکل وقتی برنامه رو مستقل اجرا می کنید یا در سیستم دیگه اجرا می کنید پیش میاد معنیش اینه که مشکل در دسترسی برنامه شما به محیط خاصی از ویندوزه

از Try برای خطا یابی قسمتهای مختلف کنید

esikley
سه شنبه 11 مهر 1391, 19:20 عصر
از دوستان میخوام بیشتر راهنمایی کنند من سورس کد دومی رو قرار دادم لطفا اگه میشه تحصیحش کتید ممنون میشم موفق باشید