我有一个简单的代码我只想知道输入的给定用户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;
我做错了什么?
答案 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();