[英]SQL Query with Parameters not working - ASP.NET with Oracle DB
如果我硬编码用户名,这工作正常。 不会使用参数,我尝试了很多不同的方法。 我错过了什么? 当我使用参数时,表总是以零计数结束。
protected void LogIn(object sender, EventArgs e)
{
OracleConnection con = TTTrackerConnection.DevDBConnection();
String myUserName = UserName.Text;
DataSet user_ds = new DataSet();
String myPW = Password.Text;
using (con)
{
con.Open();
String sql = "SELECT USER_PW FROM TT_USER WHERE USER_LOGINNAME = :username";
OracleCommand cmdFindUser = new OracleCommand(sql, con);
OracleParameter uname = cmdFindUser.CreateParameter();
uname.ParameterName = "username";
uname.OracleDbType = OracleDbType.Varchar2;
uname.Value = UserName.Text;
cmdFindUser.Parameters.Add(uname);
OracleDataAdapter oda = new OracleDataAdapter(cmdFindUser);
oda.Fill(user_ds);
con.Close();
}
if (user_ds.Tables[0].Rows.Count != 0)
{
String userPW = user_ds.Tables[0].Rows[0].Field<string>("USER_PW");
if (myPW == userPW)
{
lblPasswordResult.Text = "Password Matched";
}
else
{
lblPasswordResult.Text = "Password does not Match";
}
}
else
{
lblPasswordResult.Text = "Login not found";
}
}//end Login button click method
对于用于字符串的Oracle参数类型, OracleDbType.Varchar2
以及OracleDbType.NVarchar2
,您需要指定一个大小:
uname.Size = 50;
其中实际值应根据模式(在您的情况下为USER_LOGINNAME
)对应于列的字符长度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.