Oracle数据库与C#之间的连接

时间:2019-03-14 02:06:39

标签: c# oracle11g

我正在尝试使用Visual Studio Win表单创建简单的登录页面。我有用户名和密码作为文本框控件。

以下是应检查数据库中是否存在此类用户的事件:

 public static int getNumberOfDigits(long creditCardNumber)
{
    //problem with 0's at beginning and more than 10 digits
    int nDigitsInCard = 0;
    int divisor = (int) creditCardNumber;
    for(int i = 0; i <= creditCardNumber; i++){
        while(divisor!=0){
            divisor/=10;
            ++nDigitsInCard;
        }
}
    // return the number of digits in nDigitsInCard

    return nDigitsInCard;
}

if (con.State != ConnectionState.Open) { con.Open(); } OracleCommand cmd = con.CreateCommand(); cmd.CommandText = "select staff_username, staff_password from staff_accounts"; cmd.CommandType = CommandType.Text; OracleDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { if (dr.HasRows) { if (username.Text == dr["staff_username"].ToString() && pass.Text == dr["staff_password"].ToString()) { admin.ShowDialog(); } else { label1.Text = "Error"; } } } 返回false,这意味着dr.HasRows不返回任何行,但是在我的数据库中,相同的查询可以正常工作。

将提供任何帮助。

1 个答案:

答案 0 :(得分:0)

在调用读取器HasRows方法之前,应检查Read()属性。试试:

 if (dr.HasRows)
 {
   while (dr.Read())
   {
     ....