我正在编写一个关于执行查询并在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]错误:语法错误 我怎么能摆脱这个“\”?提前谢谢!
答案 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;