C# C-SQL commandtext中的双引号

C# C-SQL commandtext中的双引号,c#,vertica,C#,Vertica,我正在编写一个关于在datagridview中执行查询并显示结果的程序,查询如下: 从20000_es_asset.tablename中选择*; DB是HP Vertica,以下是我的C代码: string strAsset = @"""20000_es_asset"""; string strSQL = "select * from " + strAsset + "." + table + ";"; VerticaCommand command = _conn.CreateCommand();

我正在编写一个关于在datagridview中执行查询并显示结果的程序,查询如下: 从20000_es_asset.tablename中选择*; DB是HP Vertica,以下是我的C代码:

string strAsset = @"""20000_es_asset""";
string strSQL = "select * from " + strAsset + "." + table + ";";
VerticaCommand command = _conn.CreateCommand();
command.CommandText = strSQL;
strSQL中有两个双引号,问题是CommandText似乎没有解析转义字符,直接移动,CommandText的调试信息是: 选择*from\20000\u es\u asset\ tablename; 异常:Vertica.Data.dll中的“Vertica.Data.VerticaClient.VerticaException”[42601]错误:语法错误 我怎样才能摆脱这个\?提前谢谢

string strSQL = string.Format("select * from {0}.{1};", "\"20000_es_asset\"", table);

PS-您应该始终将查询参数化。

您需要使用方括号[]对strAsset中的双引号进行转义

string strAsset = @"[""20000_es_asset""]";
string strSQL = "select * from " + strAsset + "." + table + ";";
VerticaCommand command = _conn.CreateCommand();
command.CommandText = strSQL;

试过了?你可能想试着用它来安全地逃离这些名字。然后将结果输入到sp_executesqlThank you Yang&Scott,现在没事了,只是发现我的查询是错误的,不是由双引号引起的。真可惜!如果您添加方形制动器,请从[20000_es_asset]中选择*。表是一个有效的名称。@scott,当然是的,我的错,到early以获取答案,现在已编辑它:谢谢Thorarins。现在没事了,只是发现我的查询是错误的,不是由双引号引起的。真可惜!