【问题标题】:I cannot use variable string in my SQL query using Oracle connection我不能在使用 Oracle 连接的 SQL 查询中使用变量字符串
【发布时间】:2014-09-11 13:19:04
【问题描述】:

我有一个简单的代码,我只是想知道输入的给定用户 ID 是否已经注册。所以我写了;

string a="somestring";

conn = new OracleConnection("Data Source=Home-PC;Persist Security Info=True;UserID=ali;Password=abc123;");

conn.Open();

OracleCommand cmd = new OracleCommand("select * from users where userid=@a", conn);

cmd.Parameters.AddWithValue("@a", a);

var data = cmd.ExecuteReader();   <--  Here it shows error *illegal variable name/number*

if (data.HasRows)   return false;
else return true;

我做错了什么?

【问题讨论】:

  • 您是否遇到任何错误?还是输出错误?
  • @DH__ 错误“非法变量名称/编号

标签: asp.net sql database oracle


【解决方案1】:

OracleCommand 引用的SQL 语句中使用命名参数时,必须在参数名称前加上冒号(:)

尝试更改您的命令文本

OracleCommand cmd = new OracleCommand("select * from users where userid=@a", conn);

OracleCommand cmd = new OracleCommand("select * from users where userid = :a", conn);
cmd.Parameters.AddWithValue(":a", a);

然后执行如下命令

OracleDataReader reader = cmd.ExecuteReader(); 

【讨论】:

  • 感谢它的工作。令人惊讶的是,我在谷歌上找到了这种语法。我发现的只是@variable-name。无论如何谢谢。
猜你喜欢
  • 2012-03-19
  • 1970-01-01
  • 2021-10-05
  • 1970-01-01
  • 2018-10-16
  • 2023-04-06
  • 1970-01-01
  • 2013-12-19
  • 1970-01-01
相关资源
最近更新 更多