问题为:在某些机器上,有时能返回结果,有时报错,错误随机出现;而有些机器就一直报错。
报错代码为:
未处理 System.AccessViolationException
Message="Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
Source="System.Data"
StackTrace:
at System.Data.Common.UnsafeNativeMethods.ICommandText.Execute(IntPtr pUnkOuter, Guid& riid, tagDBPARAMS pDBParams, IntPtr& pcRowsAffected, Object& ppRowset)
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.OleDb.OleDbCommand.ExecuteReader()
at WinCCConTest.Program.Main() in D:\XldDam\XldDamApp\WinCCConTest\Program.cs:line 25
at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
代码如下:
string sConStr = @"Provider=WinCCOLEDBProvider.1;Data Source=TEST\WINCC;Password=111;User ID=sa;Catalog=CC_Project2_09_02_12_14_54_00R;Charset=ASCII";
OleDbConnection sqlCon = new OleDbConnection(sConStr);
sqlCon.Open();
string sParam = @"ProcessValueArchive_1\qy_span";
string sSql = "TAG:R,'" + sParam + "','0000-00-00 00:00:10.000','0000-00-00 00:00:00.000'";
OleDbCommand sqlCom = new OleDbCommand(sSql,sqlCon); OleDbDataReader reader= sqlCom.ExecuteReader();
while(reader.NextResult())
{
}
请各位专家协助解决。