OracleDataReader reader = cmd.ExecuteReader();

Joel_L 2011-11-26 08:21:30
程序运行的时候提示表不存在。可是我在数据库里面可以查出数据。 代码如下:
private void sure_Login(object sender, EventArgs e)
{
string userName = this.userName.Text.ToString().Trim();
string userPwd = this.userPwd.Text.ToString().Trim();
if (userName == "" || userPwd == ""|| this.comboBoxRol.SelectedIndex==-1)
{
MessageBox.Show("用户名,密码,登录的身份不能为空");
}
//读取配置文件中得连接字符
// string connstring = ConfigurationManager.ConnectionStrings["benoraclConn"].ConnectionString;


//创建连接对象
OracleConnection conn = new OracleConnection();
// conn.ConnectionString = connstring;
conn.ConnectionString = "server=bigben;User ID=system;Password=ben123";
conn.Open();
MessageBox.Show("lianjiechenggong ");

OracleCommand cmd = new OracleCommand();

cmd.Connection=conn;//指定用conn连接数据库

cmd.CommandText = "select userName, userPwd from user_talbe where userName=:name";
OracleParameter pare = new OracleParameter(":name", userName);
cmd.Parameters.Add(pare);

OracleDataReader reader = cmd.ExecuteReader();这里报错 if(!reader.HasRows)
{
MessageBox.Show("您输入的账户不存在!");

}
else
{
while(reader.Read())//一行
{
//有数据,并取出来
string user = reader[0].ToString();//一行的一列
string pwd=reader[1].ToString();
if(pwd==userPwd)
{
string role = comboBoxRol.SelectedItem.ToString();

FormMain userlog = new FormMain(role, this, skinLog, userName, userPwd);
userlog.Show();
this.Hide();
}
else
{
MessageBox.Show("密码不正确!请重试!");
}

}

}

conn.Close();

}


}
}

...全文
472 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengsb 2011-11-27
  • 打赏
  • 举报
回复
还是怀疑你的user_table的owner不是system,仔细检查1下;
用PL/SQL等工具看看
Joel_L 2011-11-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 candymanping 的回复:]
引用 2 楼 denqh 的回复:
userName,name不知Oracle中是不是关键字,在SQL中是关键字

我用system 用户登录进去可以查出这张表
[/Quote]
这句怎么了。 后面我把sql语句写成 select * from user_table 也是报同样的错误 我纠结
bososoft 2011-11-27
  • 打赏
  • 举报
回复
cmd.CommandText = "select userName, userPwd from user_talbe where userName=:name";

在看下你的这句
Joel_L 2011-11-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 denqh 的回复:]
userName,name不知Oracle中是不是关键字,在SQL中是关键字
[/Quote]
我用system 用户登录进去可以查出这张表
gxingmin 2011-11-26
  • 打赏
  • 举报
回复
有可能你的表名称带双引号
zhengsb 2011-11-26
  • 打赏
  • 举报
回复
确信你的user_talbe表归属于system用户?
如果不是,需要更改连接字符串中的User ID为user_talbe归属的Oracle用户;
或者为user_talbe指定owner:
cmd.CommandText = "select userName, userPwd from user1.user_talbe where userName=:name";

假定user_talbe的owner为user1
DENQH 2011-11-26
  • 打赏
  • 举报
回复
userName,name不知Oracle中是不是关键字,在SQL中是关键字
gxingmin 2011-11-26
  • 打赏
  • 举报
回复
确定数据库中有这个表?
你在sqlplus里查询这条语句看报错不?
select userName, userPwd from user_talbe

110,533

社区成员

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

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

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