我不能在使用Oracle连接的SQL查询中使用变量字符串

时间:2014-07-21 05:32:15

标签: asp.net sql database oracle

我有一个简单的代码我只想知道输入的给定用户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;

我做错了什么?

1 个答案:

答案 0 :(得分:0)

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();