SQL 服务器在结果中返回无效 (unicode/hexidecimal) 个字符
SQL Server Returning Invalid (unicode/hexidecimal) Characters In Result
在查询包含大量 NTEXT
SQL 列的列表时,我开始更频繁地在查询结果中返回垃圾。我不确定问题是 CISCO VPN 还是其他类型的 'driver'(网络驱动程序、wifi 驱动程序、笔记本电脑上的语言设置?)。我完全不知所措了。但是您可以在下面的屏幕截图中看到失败。请注意转储出来的 'Success' 行,这意味着它工作了一次但第二次失败了。我得到 运行dom 成功次数,然后失败。
我曾让其他人在连接到同一 VPN 时尝试使用相同的脚本(但他们位于不同的位置,显然是不同的计算机)并且他们可以 运行 它没有错误。一个人 运行 它 5 次(所以 50 次成功查询)。
我正在使用 LINQPad(显然还有 LINQ to SQL)作为测试工具,这是我的脚本。这只是一个循环 FolderItem.fiItem
列 (NTEXT
) 并将它们解析为 XML 并将其添加到根元素的简单脚本。你可以看到我尝试了直接 L2S 查询以及使用 ExecuteCommand
方法来查看它是否对结果有任何影响但没有任何改变。
UPDATE - 我刚刚连接到我的 phone 热点而不是我的常规 WIFI(放大器路由器)并且它通过脚本没有错误。我真的不知道要尝试解决什么问题,但是当使用 VPN 连接到我的 WIFI 时,我的下载速度约为 80MB。任何 ideas/suggestions?
脚本
void Main()
{
var query = @"SELECT [t0].[fiEntryType], [t0].[fiItem]
FROM[dbo].[FolderItems] AS[t0]
LEFT OUTER JOIN[dbo].[Groups] AS[t1] ON[t1].[gKey] = [t0].[figKey]
WHERE[t1].[gName] = 'Tables';";
var tables = new XElement("Tables" );
for (int i = 0; i < 10; i++)
{
// var folderItems = FolderItems.Where(f => f.Group.gName == "Tables").Select(f => new { f.fiEntryType, f.fiItem });
var folderItems = ExecuteQuery<TableResult>(query, new object[] { });
foreach (var fi in folderItems)
{
try
{
tables.Add(XElement.Parse($"<Table>{fi.fiItem}</Table>"));
}
catch (Exception ex)
{
fi.Dump();
throw;
}
}
// tables.Dump();
"Success".Dump();
Thread.Sleep( 1000 );
}
}
// Define other methods and classes here
public class TableResult
{
public string fiEntryType {get;set;}
public string fiItem {get;set;}
}
无法真正解释所有行为,但将我的 VPN 软件从 Cisco 更改为 Shrewsoft 解决了这个问题。 Shrewsoft 自安装以来一直非常可靠。
在查询包含大量 NTEXT
SQL 列的列表时,我开始更频繁地在查询结果中返回垃圾。我不确定问题是 CISCO VPN 还是其他类型的 'driver'(网络驱动程序、wifi 驱动程序、笔记本电脑上的语言设置?)。我完全不知所措了。但是您可以在下面的屏幕截图中看到失败。请注意转储出来的 'Success' 行,这意味着它工作了一次但第二次失败了。我得到 运行dom 成功次数,然后失败。
我曾让其他人在连接到同一 VPN 时尝试使用相同的脚本(但他们位于不同的位置,显然是不同的计算机)并且他们可以 运行 它没有错误。一个人 运行 它 5 次(所以 50 次成功查询)。
我正在使用 LINQPad(显然还有 LINQ to SQL)作为测试工具,这是我的脚本。这只是一个循环 FolderItem.fiItem
列 (NTEXT
) 并将它们解析为 XML 并将其添加到根元素的简单脚本。你可以看到我尝试了直接 L2S 查询以及使用 ExecuteCommand
方法来查看它是否对结果有任何影响但没有任何改变。
UPDATE - 我刚刚连接到我的 phone 热点而不是我的常规 WIFI(放大器路由器)并且它通过脚本没有错误。我真的不知道要尝试解决什么问题,但是当使用 VPN 连接到我的 WIFI 时,我的下载速度约为 80MB。任何 ideas/suggestions?
脚本
void Main()
{
var query = @"SELECT [t0].[fiEntryType], [t0].[fiItem]
FROM[dbo].[FolderItems] AS[t0]
LEFT OUTER JOIN[dbo].[Groups] AS[t1] ON[t1].[gKey] = [t0].[figKey]
WHERE[t1].[gName] = 'Tables';";
var tables = new XElement("Tables" );
for (int i = 0; i < 10; i++)
{
// var folderItems = FolderItems.Where(f => f.Group.gName == "Tables").Select(f => new { f.fiEntryType, f.fiItem });
var folderItems = ExecuteQuery<TableResult>(query, new object[] { });
foreach (var fi in folderItems)
{
try
{
tables.Add(XElement.Parse($"<Table>{fi.fiItem}</Table>"));
}
catch (Exception ex)
{
fi.Dump();
throw;
}
}
// tables.Dump();
"Success".Dump();
Thread.Sleep( 1000 );
}
}
// Define other methods and classes here
public class TableResult
{
public string fiEntryType {get;set;}
public string fiItem {get;set;}
}
无法真正解释所有行为,但将我的 VPN 软件从 Cisco 更改为 Shrewsoft 解决了这个问题。 Shrewsoft 自安装以来一直非常可靠。