已安装操作系统-windows 10 64位
已安装sqlxml_x64.msi并在我的应用程序中使用microsoft.data.sql.xml
已创建控制台应用程序-framework 4.5.2
下面是我从sql数据库获取数据的逻辑。
SqlXmlCommand cmd = new SqlXmlCommand("My SQL connection string");
cmd.CommandText = "/Tbl_Name[@Column_Name='SomeValue']";
cmd.CommandType = SqlXmlCommandType.XPath;
cmd.SchemaPath = "My xsd file path";
string strResult;
try
{
strm = cmd.ExecuteStream();
strm.Position = 0;
using (StreamReader sr = new StreamReader(strm))
{
Console.WriteLine(sr.ReadToEnd());
}
}
在x64(平台目标)中执行应用程序时,获取“尝试读取或写入受保护的内存。这通常表示cmd.executestream()行中的“其他内存已损坏”。如果我在启用了首选32位选项的任何cpu选项中运行应用程序,应用程序工作正常。
我不知道为什么它不能在x64平台上工作,为什么它可以在x86和任何支持32位选项的cpu上工作。因为我正在安装sqlxmlx64.msi并在我的64位控制台应用程序中引用64位microsoft.data.sql.xml.dll。
暂无答案!
目前还没有任何答案,快来回答吧!