2015-11-13 27 views
1

я на этот раз запустить ошибкуAccessViolationException во время выполнения

внутреннее исключение «System.AccessViolationException» ==> "Попытались чтения или записи в защищенную память. Это часто указывает на то, что другие память испорчена.

и вот мой код

private AutoCompleteStringCollection GetLinqDataSourceForString(string p) 
{ 
    var c = new AutoCompleteStringCollection(); 
    c.Add(Getauto(p)); 
    return c; 
} 


    private void txtSearch_TextChanged(object sender, EventArgs e) 
{ 
    txtSearch.AutoCompleteSource = AutoCompleteSource.CustomSource; 
    txtSearch.AutoCompleteMode = AutoCompleteMode.Suggest; 
     txtSearch.AutoCompleteCustomSource = GetLinqDataSourceForString(txtSearch.Text); 
} 

и это один находится в другом слое, чтобы получить Информация из базы данных

public string AutoUpdate(string _search) 
{ 
    using (var context = new Phone_BookEntities1()) 
    { 
     var c = (from d in context.Cantacts 
       where d.Cantact1.StartsWith(_search) 
       select d.Cantact1).SingleOrDefault(); 
     return c; 
    } 
} 

и здесь, где произошла ошибка времени выполнения (в последней строке)

static class Program 
{ 
    /// <summary> 
    /// The main entry point for the application. 
    /// </summary> 
    [STAThread] 
    static void Main() 
    { 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     Application.Run(new Form1()); 
    } 
} 

, а также я использовал этот метод на нем для того, чтобы ввести только текст (строка)

private void txtSearch_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     if (e.KeyChar < '0' || e.KeyChar > '9') 
      e.Handled = false; 
     else 
      e.Handled = true; 
    } 
+2

Стеки вызовов будут полезны при отладке первопричины этого вопроса; см. http://stackoverflow.com/questions/7901530/c-sharp-error-attempted-to-read-or-write-protected-memory-or-external-compone для получения дополнительной помощи. – dash

+0

@dash Спасибо за помощь –

ответ

0

Вы должны установить вас Debugger в VS2005:

Сервис-> параметры

Debugging-> Общие

снимите флажок опции «Подавить оптимизацию JIT на загрузке модуля»

Смежные вопросы