关于这段登录名不能重复的代码的解释?

来源:百度知道 编辑:UC知道 时间:2024/07/01 13:55:14
麻烦解释一下,加下注释 详细的话高分! 谢谢 加注释的地方

string sql = "select count(*) from yanzheng where vdengluname='" + textBox1.Text + "'";//明白了

SqlConnection connection = new SqlConnection("Data Source=05608A0429C64E1\\123;Initial Catalog=jimmy;User ID=guchao;Password=jimmy");//明白了
SqlCommand command = new SqlCommand(sql, connection);

command.Connection.Open();
int n = Convert.ToInt32(command.ExecuteReader ());//什么意思????command.ExecuteReader ()不明白
command.Connection.Close();
if (n > 0)
{
MessageBox.Show("该用户已经存在,请重新输入!");
this.textBox1.Text = "";
textBox1.Select();
}

int n = Convert.ToInt32(command.ExecuteReader ());
简单的说就是看这个表里面又没有这个数据记录
如果有的话就返回一个值,至于那个值是什么类型我就不知道了
如果int n等于0表示返回的是第一行
也就是列名的那一行
总之如果你的表中又那个数据记录的话 n必定会大于0 ;

你不明白的就是ExecueReader()吧
她是command(命令)的一个方法!
该方法用于执行指定为Command对象的命令文本的SQl语句或者存储过程。她使用检索到的数据创建数据读取器。

command.ExecuteReader ()是执行你的sql语句并且把结果存放在一个SqlDatareader中,因此这里存放的是你string sql = "select count(*) from yanzheng where vdengluname='" + textBox1.Text + "'";所执行后的结果,既然你懂了这个sql语句,那么显然就是textBox1.Text 的记录总数(count的作用)...
conver.toint32()是强制类型转换~SqlDatareader转为int32

command.ExecuteReader ()
sqlcommand 的一个方法,执行查询,并返回一个datareader(),数据保存在该对象中。.