PDA

View Full Version : مبتدی: خطای AccessViolationExpection as Unhandled



mehran788
پنج شنبه 15 آبان 1393, 16:46 عصر
سلام. خسته نباشید
کسی میدونه این خطا برای چیه؟از کد برنامه نیست چون کد درسته وقتی هم این خطا رو میده ویژوال رو می بندم دوباره اجرا میکنم درست میشه.
متن خطا هم اینه
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
ممنون

mreram
پنج شنبه 15 آبان 1393, 17:38 عصر
با سلام
این نوع خطا مربوط به حافظه است ببنید چرا منابعتون اشغال شده ... اگر از تایمر استفاده کردید متوقفش کنید

mreram
پنج شنبه 15 آبان 1393, 17:39 عصر
اگر خطایتان InnerException هم دارد، متن انها را هم قرار دهید که مهم تر است

mehran788
پنج شنبه 15 آبان 1393, 17:51 عصر
نمیدونم چرا پر شده از تایمر هم استفاده نکردم. بنظرتون چه دلایلی می تونه داشته باشه چون من قبلا پروژه بزرگتر این هم نوشته بودم ولی همچین چیزی ندیده بودم تو این پروژه که چیز زیادی هم استفاده نکردم

mreram
پنج شنبه 15 آبان 1393, 17:57 عصر
نمیدونم چرا پر شده از تایمر هم استفاده نکردم. بنظرتون چه دلایلی می تونه داشته باشه چون من قبلا پروژه بزرگتر این هم نوشته بودم ولی همچین چیزی ندیده بودم تو این پروژه که چیز زیادی هم استفاده نکردم
لطفا پرینت اسکرین بگیرید و بذارید و یا کدی رو که خطا میده بذارید و یا InnerException ها رو بذارید

mehran788
پنج شنبه 15 آبان 1393, 18:03 عصر
125371اینم تصویر برنامه. رو کد من خطا نمیده

mreram
پنج شنبه 15 آبان 1393, 18:13 عصر
لطفا breakpoint بذارید وخط به خط برنامه رو چک کنید ازین عکسی که گذاشتید چیزی مشخص نمیشه چون از برنامه خارج شده

mehran788
پنج شنبه 15 آبان 1393, 18:20 عصر
منظورتون دقیقا کجاست چون یبار خطا میده یبار نمیده بعد بعضی وقتها هم جاهای دیگه خطا میده اصلا نامشخصه

mreram
پنج شنبه 15 آبان 1393, 18:23 عصر
منظورتون دقیقا کجاست چون یبار خطا میده یبار نمیده بعد بعضی وقتها هم جاهای دیگه خطا میده اصلا نامشخصه
اینجوری که شما میفرمایید من نمیدونم چه خطایی هست!!

mehran788
پنج شنبه 15 آبان 1393, 20:36 عصر
یه چیز دیگه ، تا اونجا که فهمیدم این خطا فقط تو اجرای کدهای textchange تکست باکس هایی میاد که تو اونا از خاصیت autocomplete استفاده کردم.
اینم کد رویدادم
private void txtname_TextChanged(object sender, EventArgs e) {
txtname.AutoCompleteCustomSource.Clear();
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\Projects\M y Projects\2- MAA Calorei Manager\Calorei Manager\Calorei Manager\DATABASE.MDF;Integrated Security=True;User Instance=True");
SqlCommand com = new SqlCommand();
com.CommandText = string.Format("select * from tblactivitydet where ActivityName like N'%{0}%'", txtname.Text);
com.Connection = con;
SqlDataReader dr;
con.Open();
dr = com.ExecuteReader();
while (dr.Read())
{
Boolean allow = false;
List<string> sr = new List<string>();//sr=search resualt
if (sr.Count > 0)
{
for (int i = 0; i <= sr.Count; i++)
{
if (sr[0] == dr["activityname"].ToString())
{
allow = true;
}
else
sr.Add(dr["activityname"].ToString());
}
}
else
{
sr.Add(dr["activityname"].ToString());
}
if (allow == false)
txtname.AutoCompleteCustomSource.Add(dr["activityname"].ToString());
}
con.Close();
}

mreram
پنج شنبه 15 آبان 1393, 23:40 عصر
اررورت واسه حلقه هاته ولی نمیدونم کجاش مشکل داره پروژت رو با دیتابیس باید بذاری

mreram
پنج شنبه 15 آبان 1393, 23:44 عصر
اینم که میفرمایید:

یبار خطا میده یبار نمیده بعد بعضی وقتها هم جاهای دیگه خطا میده اصلا نامشخصه
واسه sr.Count هست چون لیست یا آرایه اندیس هاش از 0 شروع میشه آخرین عنصر اندیسش یکی کمتر هست ولی شما مساوی گذاشتید اینو اصلاح کنید:

for (int i = 0; i <= sr.Count; i++)
باید این بشه:

for (int i = 0; i < sr.Count; i++)

mehran788
جمعه 23 آبان 1393, 14:53 عصر
سلام. خیلی شرمنده من یه مدت نبودم تا نگاه کنم
من بررسی کردم وقتی خطا میده تو خط 34 خطا میده. یعنی دقیقا وقتی کل کد تموم شده. کد رو اجرا می کنه ولی آخر تو وقتی میخواد { رو اجرا کنه خطا میده