VB访问冲突错误
Posted
技术标签:
【中文标题】VB访问冲突错误【英文标题】:VB access violation error 【发布时间】:2017-10-12 16:54:33 【问题描述】:我认为我的 sql 数据库有问题。我有一个应用程序在 tableadapter 被填满时突然抛出访问冲突错误。
我相信数据库一般可能发生了一些问题,因为如果我提取早期版本的程序代码,我会得到同样的错误。
这是它失败的那一行
URTableAdapter.Fill(URDataSet.UR)
这是异常错误文本:
抛出异常:System.Data.dll 中的“System.Data.ConstraintException” System.Transactions 严重:0:xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" >Severity="Critical" TraceIdentifier>http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/200>4/07/Reliability/Exception/UnhandledUnhandled>exceptionUR.vshost.exe>> System.Data.ConstraintException, System.Data, Version=4.0.0.0, >Culture=neutral, PublicKeyToken=b77a5c561934e089Failed >启用约束。一行或多行包含违反非空、>唯一或外键约束的值。在 >System.Data.DataSet.EnableConstraints() 在 System.Data.DataSet.set_EnforceConstraints(布尔值) 在 System.Data.Common.DataAdapter.Fill(DataTable[] dataTables,IDataReader >dataReader,Int32 startRecord,Int32 maxRecords) 在 System.Data.Common.DbDataAdapter.FillInternal(DataSet 数据集,>DataTable[] 数据表,Int32 startRecord,Int32 maxRecords,String srcTable,>IDbCommand 命令,CommandBehavior 行为) 在 System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables,Int32 >startRecord,Int32 maxRecords,IDbCommand 命令,CommandBehavior 行为) 在 System.Data.Common.DbDataAdapter.Fill(DataTable 数据表) 在 >H:\Databases\UR\UREvolv\UR\URDataSet.Designer.vb:line 10650 中的 UR.URDataSetTableAdapters.URTableAdapter.Fill(URDataTable dataTable) 在 >H:\Databases\UR\UREvolv\UR\DataEntry.vb:line 2103 中的 UR.DataEntry.LOCCB_SelectedIndexChanged(Object sender, EventArgs e) 在 System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e) 在 System.Windows.Forms.ComboBox.WmReflectCommand(消息和 m) 在 System.Windows.Forms.ComboBox.WndProc(消息和 m) 在 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd,Int32 >msg,IntPtr wparam,IntPtr lparam)>System.Data.ConstraintException:无法启用约束。 >一行或多行包含违反非空、唯一或外键 >约束的值。 在 System.Data.DataSet.EnableConstraints() 在 System.Data.DataSet.set_EnforceConstraints(布尔值) 在 System.Data.Common.DataAdapter.Fill(DataTable[] dataTables,IDataReader >dataReader,Int32 startRecord,Int32 maxRecords) 在 System.Data.Common.DbDataAdapter.FillInternal(DataSet 数据集,>DataTable[] 数据表,Int32 startRecord,Int32 maxRecords,String srcTable,>IDbCommand 命令,CommandBehavior 行为) 在 System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables,Int32 >startRecord,Int32 maxRecords,IDbCommand 命令,CommandBehavior 行为) 在 System.Data.Common.DbDataAdapter.Fill(DataTable 数据表) 在 >H:\Databases\UR\UREvolv\UR\URDataSet.Designer.vb:line 10650 中的 UR.URDataSetTableAdapters.URTableAdapter.Fill(URDataTable dataTable) 在 >H:\Databases\UR\UREvolv\UR\DataEntry.vb:line 2103 中的 UR.DataEntry.LOCCB_SelectedIndexChanged(Object sender, EventArgs e) 在 System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e) 在 System.Windows.Forms.ComboBox.WmReflectCommand(消息和 m) 在 System.Windows.Forms.ComboBox.WndProc(消息和 m) 在 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd,Int32 >msg,IntPtr wparam,IntPtr lparam) 程序“[13508] UR.vshost.exe”已退出,代码为 -1073741819 >(0xc0000005)“访问冲突”。
感谢您提供的任何帮助,
史蒂夫
【问题讨论】:
我刚刚将数据库恢复到另一个文件夹,并从周五早上起将其命名为 UR2,我知道周五下午它工作正常。我从同一时间段的备份中恢复了我的代码,在我的应用程序中将连接字符串从 UR 更改为 UR2。我仍然遇到同样的错误。 【参考方案1】:我仍然不确定原始 exe 和 DB 发生了什么,但我能够使用 DB 的当前备份恢复程序的旧副本,并根据之前的版本进行更改。
谢谢,
史蒂夫
【讨论】:
以上是关于VB访问冲突错误的主要内容,如果未能解决你的问题,请参考以下文章