C# - SQL commandtext中的双引号

时间:2015-12-23 06:27:48

标签: c# vertica

我正在编写一个关于执行查询并在datagridview中显示结果的程序,查询如下: select * from“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的调试信息是: select * from \“20000_es_asset \”。tablename; 例外:Vertica.Data.dll中的“Vertica.Data.VerticaClient.VerticaException”,[42601]错误:语法错误 我怎么能摆脱这个“\”?提前谢谢!

2 个答案:

答案 0 :(得分:0)

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

PS-您应该始终对查询进行参数化。

答案 1 :(得分:0)

你需要逃避双引号""在strAsset中使用方括号[]

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