C# SQL Server在结果中返回无效(unicode/十六进制)字符

C# SQL Server在结果中返回无效(unicode/十六进制)字符,c#,sql,unicode,linq-to-sql,linqpad,C#,Sql,Unicode,Linq To Sql,Linqpad,在查询大型NTEXTSQL列列表时,我开始更频繁地在查询结果中返回垃圾。我不确定是CISCO VPN导致了问题还是其他类型的“驱动程序”(网络驱动程序、wifi驱动程序、笔记本电脑上的语言设置?)。我完全不知所措。但是你可以在下面我的屏幕截图中看到失败。注意,有一行“成功”被丢弃了,这意味着它工作了一次,但第二次失败了。我获得随机数目的成功,然后失败 我曾经让其他人在连接到同一个VPN时尝试相同的脚本(但是他们在不同的位置,显然是不同的计算机),他们可以毫无错误地运行它。一个人运行了5次(50次

在查询大型
NTEXT
SQL列列表时,我开始更频繁地在查询结果中返回垃圾。我不确定是CISCO VPN导致了问题还是其他类型的“驱动程序”(网络驱动程序、wifi驱动程序、笔记本电脑上的语言设置?)。我完全不知所措。但是你可以在下面我的屏幕截图中看到失败。注意,有一行“成功”被丢弃了,这意味着它工作了一次,但第二次失败了。我获得随机数目的成功,然后失败

我曾经让其他人在连接到同一个VPN时尝试相同的脚本(但是他们在不同的位置,显然是不同的计算机),他们可以毫无错误地运行它。一个人运行了5次(50次成功查询)

我使用LINQPad(显然是linqtosql)作为测试工具,下面是我的脚本。这只是一个简单的脚本,可以循环
FolderItem.fiItem
列(
NTEXT
)并将它们解析为XML并将其添加到根元素。您可以看到,我尝试了直接L2S查询,并使用
ExecuteCommand
方法查看它是否对结果有任何影响,但没有任何改变

更新-我刚连接到我的手机热点,而不是我的常规WIFI(amplifi路由器),它通过脚本顺利通过。我真的不知道该看些什么来尝试解决问题,但是当我用VPN连接到我的WIFI时,我的下载速度大约是80MB。有什么想法/建议吗

脚本

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;}
}
void Main()
{
变量查询=@“选择[t0].[fiEntryType],[t0].[fiItem]
来自[dbo]。[FolderItems]作为[t0]
[t1].[gKey]=[t0].[figKey]上的[t1]作为左外联接[dbo].[Groups]
其中[t1].[gName]='Tables';“;
var表格=新的XElement(“表格”);
对于(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(查询,新对象[]{});
foreach(folderItems中的变量fi)
{
尝试
{
Add(XElement.Parse($“{fi.fiItem}”);
}
捕获(例外情况除外)
{
fi.Dump();
投掷;
}
}
//tables.Dump();
“Success”;
睡眠(1000);
}
}
//在此处定义其他方法和类
公共类表格结果
{
公共字符串类型{get;set;}
公共字符串项{get;set;}
}

无法真正解释所有行为,但将我的VPN软件从Cisco更改为Shrewsoft解决了问题。自安装以来,Shrewsoft一直非常稳定