查询ORACLE出错,这段代码有什么问题?

路人甲cw 2011-03-11 03:42:03
string username = txtUserName.Text.Trim();
string password = txtPassword.Text.Trim();

if (username == "" || password == "")
{
MessageBox.Show("用户名或密码不能为空!");
return;
}

string connstr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
using (OracleConnection conn = new OracleConnection(connstr))
{
conn.Open();
using (OracleCommand com = conn.CreateCommand())
{
com.CommandText = "select * from t_test where username=@UserName";
com.Parameters.Add("UserName",username);
using (OracleDataReader reader = com.ExecuteReader()) //执行到这句时异常:ORA-00936: 缺少表达式
{
if (!reader.Read())
{
MessageBox.Show("用户名错误!");
return;
}
com.CommandText = "select * from t_test where username=@UserName and password=@Password";
com.Parameters.Clear();
com.Parameters.Add("UserName", username);
com.Parameters.Add("Password", password);
if (Convert.ToInt32(com.ExecuteScalar())==0) //执行到这句时异常:ORA-00936: 缺少表达式
{
MessageBox.Show("密码错误!");
return;
}
MessageBox.Show("登录成功!");
}
}
}

如果不用带参查询,用拼接字符串的形式可以,不知道问题出在哪?
...全文
52 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
路人甲cw 2011-03-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 airch 的回复:]

Oracle里传参数不是用@ 是用:
你把@替换成:就可以了
[/Quote]
感谢,搞了几个小时,原来是这个原因,跟PB差不多,谢谢了!
Airch 2011-03-11
  • 打赏
  • 举报
回复
Oracle里传参数不是用@ 是用:
你把@替换成:就可以了

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧