问题描述
this.conn1=newSystem.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;DataSource=C:\admindb.accdb");try{this.conn1.Open();stringoledb="SELECTusernameFROMadmin";OleDbCommandcmd=newOleDbCommand(oledb,conn1);OleDbDataReaderdr=cmd.ExecuteReader();useName=dr["username"].ToString();if(useName!=this.textBox3.Text){MessageBox.Show("恭喜你!该用户名未被使用!~");this.Hide();}else{MessageBox.Show("用户名已经被使用!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);}dr.Close();}catch(Exceptionex){MessageBox.Show(ex.ToString());}finally{conn1.Close();}
解决方案
解决方案二:
"SELECTusernameFROMadmin";换成"SELECT[username]FROM[admin]";试试一般情况下,如果实在找不出原因,就把字段名和表名都用[]界定起来再试试
解决方案三:
还有一点OleDbDataReaderdr=cmd.ExecuteReader();useName=dr["username"].ToString();OleDbDataReader是只读流,你在每次读取前,都要先Read一下,改成下面的试试if(dr.Read()){useName=dr["username"].ToString();}
解决方案四:
还是不行!@
解决方案五:
谢谢你大哥哥!~哈哈你呢个成功啦我是刚刚学的
解决方案六:
做网站注册呢。加油吧。
解决方案七:
用while(dr.read){}dr是用来存放数据的,你还没有读出来