您的位置:首页 > 数据库

SqlDataReader 用法

2013-05-06 15:05 253 查看
获得数据库的密码,并且与输入的值比较:

using(SqlDataReader reader=cmd.ExecuteReader())

{

if(reader.Reader())

{//获得数据库的密码

string dbpassword=reader.GetString(reader.GetOrdinal("Password"));

if(password==dbpassword)//Comparing the Password what's

{

Console.WriteLine("登入成功!");

Console.WriteLine(reader.GetString(1));//读取第一列数据

}

}

}

reader的GetString,GetInt32等方法只接受整数参数,也就是序列号,用GetOrdinal方法根据列名动态得到序号

一个登入的后台:

using(SqlConnection conn=new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\MyDB.mdf;Integrated Security=true;User Instance=True"))

{

conn.Open();

using(SqlCommand cmd=conn.CreateCommand())

{

cmd.CommandText="select * from T_User where UserName=@username";

cmd.Parameters.Add(new SqlParameter("username",txtUserName.Text));

using(SqlDataReader reader=cmd.ExecuteReader())

{

if(reader.Read())

{

int errorTimes=reader.GetInt32(reader.GetOrdinal("ErrorTimes"));

if(errorTimes>3)

{

MessageBox.Show("登入错误次数过多,禁止登入!");

return;

}

string dbpasswoord=reader.GetString(reader.GetOrdinal("Password"));

if(dbpassword==txtPassword.Text)

{

MessageBox.Show("登入成功!");

}

else

{

using(SqlCommand updateCmd=conn.CreateCommand())

{

updateCmd.CommandText="update T_User Set ErrorTimes=ErrorTimes+1 where UserName=@UserName";

updateCmd.Parameters.Add(new SqlParameter("UserName",txtUserName.TEXT));

updateCmd.ExecuteNonQuery();

}

MessageBox.Show("登入失败!");

}

}

else

{

MessageBox.Show("用户名不存在!");

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: