我编写了一个在网络中工作的 windows 基础程序。
首先,我有一个自动完成文本框,它正在从数据库中读取名称,并根据他们输入的字母向用户显示。
该程序运行正常,但有时会出现该错误
但
现在我添加了另一个从数据库读取的自动完成文本框,现在第一个自动完成工作正常但是当我想填充第二个文本框时,它会显示此错误并冻结。
有趣的一点是程序在服务器上正常工作,只在客户端显示这个错误。即使在我的笔记本电脑或其他笔记本电脑上执行它时也没有任何错误,我将它们与家里的笔记本电脑建立了网络,它只在办公室的客户端计算机上出现错误。
请帮我解决这个问题。
谢谢你
完整的异常内容是:
-----Exception Type Is : UnHandled
-----Exceptiotn Message is : Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
-----Source that causes this error: System.Windows.Forms
-----StackTrace is : at System.Windows.Forms.UnsafeNativeMethods.DispatchM essageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoCompo nentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.Run MessageLoopInner(Int32 reason,ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.Run MessageLoop(Int32 reason,ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at Project1.Program.Main() in C:\Users\ZY\Documents\Visual Studio 2008\Projects\Project1\Project1\Program.cs:line 25
我的自动完成代码是:
private void txtkhrdsharh_TextChanged(object sender, EventArgs e)
{
AutoCompleteStringCollection namecollection = new AutoCompleteStringCollection();
BLL objbll = new BLL();
SqlDataReader rea = objbll.SelectSharhlistF(txtkhrdsharh.Text);
if (rea.HasRows == true)
{
while (rea.Read())
namecollection.Add(rea["sharh"].ToString());
}
rea.Close();
txtkhrdsharh.AutoCompleteMode = AutoCompleteMode.Suggest;
txtkhrdsharh.AutoCompleteSource = AutoCompleteSource.CustomSource;
txtkhrdsharh.AutoCompleteCustomSource = namecollection;
}