我有一个excel表。我在该 Excel 表的特定单元格中编写查询,然后通过我的 C# 代码调用该查询。我已将该单元格声明为strParam1。因此, strParam1 包含我在 Excel 表中键入的任何查询。代码如下:-
public void UpdateDatabase(String strParam1, int row)
{
System.Data.OracleClient.OracleConnection conn = new System.Data.OracleClient.OracleConnection();
conn.ConnectionString = "Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.144)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)));UID=mwm;PWD=mwm";
try
{
conn.Open();
OracleCommand command = conn.CreateCommand();
command.CommandText = strParam1.Trim();
OracleDataReader reader = command.ExecuteReader();
command.Dispose();
}
catch (Exception ex)
{
ExcelRecorder(ex.Message, row);
}
finally
{
conn.Close();
}
}
到达 ExecuteReader 时,它会抛出异常“Invalid character”。在 excel 表中,我输入了 Select * from \"Task\"; 由于 Task 是一个 oracle 关键字,因此我对上述查询进行了重组。但是,查询没有执行。如果我输入下面的代码并运行它,一切都很好。
command.CommandText = "Select * from \"Task\"";
怎么了?有什么我必须做的特殊格式吗?从excel表中读取也没有问题。我彻底测试了它。所以,这与我的例外无关。