Sql 在VB.NET中执行查询会导致GUI错误

Sql 在VB.NET中执行查询会导致GUI错误,sql,vb.net,user-interface,ms-access,oledbconnection,Sql,Vb.net,User Interface,Ms Access,Oledbconnection,每当我的程序需要查询数据库时,它都会导致GUI错误,例如表单字体随机更改、表单本身大小调整、datagrid中的数据混合在一起,并且它会影响整个程序,而不仅仅是调用查询函数的表单 我使用这个连接 “Provider=Microsoft.ACE.OLEDB.12.0;” 作为OleDbDataAdapter的公共DBDA 公共DBDT作为数据表 DBDT=新数据表 DBDA=新的OleDbDataAdapter(DBCmd) RecordCount=DBDA.Fill(DBDT) 下面是我的执行

每当我的程序需要查询数据库时,它都会导致GUI错误,例如表单字体随机更改、表单本身大小调整、datagrid中的数据混合在一起,并且它会影响整个程序,而不仅仅是调用查询函数的表单

我使用这个连接

“Provider=Microsoft.ACE.OLEDB.12.0;”
作为OleDbDataAdapter的公共DBDA
公共DBDT作为数据表
DBDT=新数据表
DBDA=新的OleDbDataAdapter(DBCmd)
RecordCount=DBDA.Fill(DBDT)
下面是我的执行查询函数:

Public子执行查询(查询为字符串)
'重置查询统计信息
记录计数=0
Exception=“”
尝试
'打开连接
DBCon.Open()
'创建数据库命令
DbCmd=新的OleDbCommand(查询,DBCon)
'将参数加载到命令中
参数ForEach(Sub(Par)DbCmd.Parameters.Add(Par))
'清除参数列表
参数清除()
'执行命令并填充数据
DBDT=新数据表
DBDA=新的OleDbDataAdapter(DbCmd)
RecordCount=DBDA.Fill(DBDT)
特例
异常=例如消息
结束尝试
"密切联系",
如果DBCon.State=ConnectionState.Open,那么DBCon.Close()
端接头
以及我如何从表单查询的示例

私人QC作为新的查询控件
公共子网格()
'运行查询
QC.ExecQuery(“从数据库中选择*)
如果不是String.IsNullOrEmpty(QC.Exception),则MsgBox(QC.Exception):退出子系统
'填充数据网格
Datagridview1.DataSource=QC.DBDT
端接头

我试着运行调试程序,同时分别注释每一行,并得出结论,ExecQuery()函数是导致问题的原因。有人遇到过类似的情况吗?

我遇到了调整表单大小的问题。它是32位Ace提供程序。我下载并安装了64位Ace提供程序。在“解决方案属性”中,取消选中“首选32位”框,一切都会好起来。

非常感谢,我下载了64位版本,并将目标输出从“所有CPU”更改为“x64”,还必须修改连接方法,在高级属性的服务器资源管理器中,我将Oledb服务从默认更改为启用所有和所有它工作的服务。我还启用了DPI意识,如前一篇文章所述,但我想仅仅做到这一点是不够的。这让我在最长的一段时间里发疯。我认为这是在微软论坛的“令人难以置信的萎缩形式”下: