C# ORA-01745在c中执行参数化查询时出错#
我在做类似的事情C# ORA-01745在c中执行参数化查询时出错#,c#,.net,oracle,C#,.net,Oracle,我在做类似的事情 ... OracleCommand oCommand = new OracleCommand(); oConnection.Open(); oCommand.Connection = oConnection; oCommand.CommandText = "SELECT * FROM employees WHERE user = :User"; oCommand.Parameters.AddWithValue(":Name", "Employee1"); DbDataRead
...
OracleCommand oCommand = new OracleCommand();
oConnection.Open();
oCommand.Connection = oConnection;
oCommand.CommandText = "SELECT * FROM employees WHERE user = :User";
oCommand.Parameters.AddWithValue(":Name", "Employee1");
DbDataReader dbRdr = oCommand.ExecuteReader();
然后抛出一个异常:
ORA-01745:无效的主机/绑定变量名
编辑:连接字符串如下所示:
"Data Source=orcl;Persist Security Info=True;User ID=user_id;Password=pwd;Unicode=True"
occonnection.Open()之后没有错误代码>所以我假设我的连接字符串是正确的
我在哪一方面犯了错误
ORA-01745:无效的主机/绑定变量名
原因:绑定变量或INTO规范中的冒号后跟
不合适的名字,可能是一个保留字
操作:更改变量名称,然后重试该操作
从
要检查哪些是保留字,请单击使用
块环绕oracle连接,并提供正确的连接字符串
using (OracleConnection con = new OracleConnection(connectionString)) {
OracleCommand oCommand = new OracleCommand(queryString, connection);
....
}
连接字符串似乎错误(指示的主机名可能不正确)。你能把它放在问题里吗?这个代码似乎没问题。你的连接字符串是什么?@Bahamut,这是你真正的查询吗?因为它不应该在这个问题上引发异常query@Habib我的问题也差不多。我使用的是一个简单的包装器,但我放置了断点、参数和ConnectionText,它们与此查询完全相同。@Bahamut,错误表明使用了保留字,这就是我问的原因。我使用了:User作为变量名。必须小心处理Oracle查询。。。下次我应该先试试这个。我忍不住要添加一条关于完全无用的Oracle错误消息的评论。。。在错误消息中包含原因语句会不会太痛苦?