我已经读过你可以在插值字符串中使用表达式,但是转义引号不起作用。
public string InsertWithParams(string sql, List<string> colValue, List<string> cols, out string error)
{
error = "";
try
{
OracleConnection con = new OracleConnection("Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=)))(CONNECT_DATA=(SERVER=DEDICATED)(SID=)));User Id=;Password=");
OracleCommand command = new OracleCommand(sql, con);
for (int i = 0; i < colValue.Count; i++)
{
command.Parameters.Add(new OracleParameter(cols[i], colValue[i]));
}
command.ExecuteNonQuery();
command.Connection.Close();
}
catch (Exception ex)
{
error = ex.Message;
}
return null;
}
更新:
上面的内在表达方式相当于
private string sth = $"{String.Join(\"\", Node.stringToType.Keys)}";
Error CS1056: Unexpected character `\0022' (CS1056)
Error CS1525: Unexpected symbol `)', expecting `${', `:', or `}' (CS1525)
(两个反斜杠用于转义两个双引号),就像你可以插入任何分隔符一样。
答案 0 :(得分:1)
你应该把它作为
private string sth = $"{String.Join("\\", Node.stringToType.Keys)}";
请注意,{...}
中的文字应正确 C#代码
String.Join("\\", Node.stringToType.Keys)
作为进一步的改进,您根本不需要字符串插值:
private string sth = String.Join("\\", Node.stringToType.Keys);
答案 1 :(得分:0)
将其更改为此
private string sth = $"{String.Join("\\", Node.stringToType.Keys)}";
这种方式也必须有效
private string sth = $"{String.Join(@"\", Node.stringToType.Keys)}";