PDA

View Full Version : سوال: عدم دیباگ OleDbDataReader در #C



ealireza
شنبه 29 مرداد 1390, 20:16 عصر
پروژه ای شروع کردم که متاسفانه جاهایی که از OleDbDataReader استفاده شده به هیچ عنوان دیباگ نمیشه و در صورت بروز مشکل Skip میشه و خطایی نشون نمیده
اگر فایل EXE ساخته شده خارج از Visual Studio اجرا بشه خطا میده ...
اما داخل visual Studio خطا نمیده

کانکشن استرینگ من به این صورت بوده

public OleDbConnection Connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Environment.CurrentDirectory + "\\Database.mdb;User Id=admin;Password=;");


و قسمتی که میخام اجرا بشه


OleDbCommand SqlCommand = new OleDbCommand();
SqlCommand.Connection = Core.Connection;
SqlCommand.CommandText = "select * from Trucks where id=@id";
SqlCommand.Parameters.Add("@id", OleDbType.Numeric).Value = id;
OleDbDataReader Reader = SqlCommand.ExecuteReader();


if (Reader.Read())
{

MessageBox.Show("1");
for (int i = 0; i < _Mashin.Items.Count;i++ )
if (((Data)_Mashin.Items[i]).Value == int.Parse(Reader["type"].ToString()))
{ _Mashin.SelectedIndex = i; break; }
MessageBox.Show("2");
}


مسیج باکس 1 اجرا میشه
2 نمیشه !
و این نشون میده که خطایی وجود داشته که بقیه کد ها اجرا نشدن

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


ضمنا از TRY هم نمیخام استفاده کنم ....


تشکر فراوان

morteza271
شنبه 29 مرداد 1390, 20:24 عصر
اگه متن خطاش رو هم میذاشتین بهتر بود...
احتمالا در کد زیر خطا میده و خارج میشه و پیام 2 رو نشون نمیده!!
if (((Data)_Mashin.Items[i]).Value == int.Parse(Reader["type"].ToString()))

احتمالا در تبدیل به int خطا میده!!!

ealireza
شنبه 29 مرداد 1390, 20:27 عصر
ضمنا ویندوز من 64 بیتی هست ...
ممکنه از اون باشه ؟!

ealireza
شنبه 29 مرداد 1390, 20:28 عصر
اگه متن خطاش رو هم میذاشتین بهتر بود...
احتمالا در کد زیر خطا میده و خارج میشه و پیام 2 رو نشون نمیده!!
if (((Data)_Mashin.Items[i]).Value == int.Parse(Reader["type"].ToString()))

احتمالا در تبدیل به int خطا میده!!!

درسته از همینه ....
ولی آخه زمانی که برنامه روی دیباگه باید خطا رو نشون بده ویژوال استادیو ...
نه اینکه اسکیپش کنه :-s

morteza271
شنبه 29 مرداد 1390, 20:30 عصر
برنامه رو با F5 اجرا کنید حتما خطا میده!!

ealireza
شنبه 29 مرداد 1390, 21:58 عصر
برنامه رو با F5 اجرا کنید حتما خطا میده!!
متاسفانه نمیده :گریه:
واقعا گیج شدم
دارم یه ویندوز 32 بیتی نصب میکنم شاید از ویندوز 64 بیتیه منه ..:متعجب:

ealireza
شنبه 29 مرداد 1390, 22:13 عصر
با 32 بیت هم program.cs رو نشون میده + متن اررور رو ....

تنظیم خاصی نیازه که انجام بدم ؟