关于 SqlParameter
一个登陆页面,数据库是oracle,用SqlParameter传参的方式(在oracle里 := @)
- C# code
OracleConnection conn = new OracleConnection(ConnectionString); string sql = "select * from table_user where name=:name and pwd=:pwd"; OracleCommand cmd = new OracleCommand(sql, conn); OracleParameter name = new OracleParameter(":name", OracleType.Char, 50); name.Value = TextBox1.Text; cmd.Parameters.Add(name); OracleParameter pwd = new OracleParameter(":pwd", OracleType.Char, 50); pwd.Value = TextBox2.Text; cmd.Parameters.Add(pwd); conn.Open(); OracleDataReader dr = cmd.ExecuteReader(); if (dr.HasRows) { if (判断账号是否被禁用)//怎样得到这一列的值 { Response.Write("账号被禁用!"); } else { Response.Redirect("index.html"); } } else { Response.Write("用户名或密码错误!"); } conn.Close();上面的代码是正确的,现在的问题是,在用户名和密码都正确的情况下,我还要判断下user_table 表里的forbidden列(禁用),怎样得到这一列的值
[解决办法]
不能用dr["字段名"]得到嘛
[解决办法]
- C# code
if (dr.HasRows) { dr.Read(); if (dr["forbidden"].ToString()=="禁用")//取值之前要Read { Response.Write("账号被禁用!"); } else { Response.Redirect("index.html"); } } else { Response.Write("用户名或密码错误!"); }
[解决办法]
if (dr != null && dr.Read())
{
string s = dr["字段名"].ToString();
}