这是MSDN的原话:
可以使用 ExecuteNonQuery 执行编录 *** 作(例如查询数据库的结构或创建诸如表等的数据库对象),或通过执行 UPDATE、INSERT 或 DELETE 语句更改数据库中的数据。
虽然 ExecuteNonQuery 不返回任何行,但是映射到参数的任何输出参数或返回值都会用数据进行填充。
对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于其他所有类型的语句,返回值为 -1。
换句话说:你那个i永远返回-1
private void button1_Click(object sender, EventArgs e)
{
string s = "DATABASE=passkey;SERVER=localhost;Integrated Security=True;";
sql1 = new SqlConnection(s);
string a = "SELECT FROM login";
adapter = new SqlDataAdapter(a, sql1);
ds = new DataSet();
adapterFill(ds,"LoginTemp");
for (int i = 0; i < dsTables["LoginTemp"]RowsCount; i++)
{
if (textBox1Text == (ConvertToString(dsTables["LoginTemp"]Rows[i]["Username"])Trim()) && textbox2Text == (ConvertToString(dsTables["LoginTemp"]Rows[i]["Password"])Trim()))
{
// button1Text = "登陆成功";
thisDialogResult = DialogResultOK;
break;
}
else
{
button1Text = "登陆失败,请重新输入!";
continue;
}
}
}
这个是登录流程问题,
一般正确的流程是在第一次打开登录页面的时候,应该先执行html那部分的,然后显示登录页的布局,然后输入账号和密码 点击登录的按钮,表单提交到自身,然后才是执行数据库连接,数据库查询账号密码是否正确这些流程,如果正确就跳转页面,错误就显示登录失败。
而从你的代码看第一次打开登录页面的时候 是先执行了php代码,查数据库所以会先提示登录失败。
你可以把你的代码 php部分外层加一个if($_POST){}判断, 然后登录的时候用Post提交,这样你在刷新登录页的时候,因为是get提交所以不会执行if判断里的代码,然后点登录的时候才会触发if里的代码
安装数据库时,因为sa密码的设有规则要求,且不能忽略规则,很多人会选择仅Windows身份验证登录模式,这种情况下,如果要使用sa登录,要修改登录模式,设置sa登录密码并授权登录,具体步骤如下:
使用Windows身份验证登录模式,选中连接源,右键属性》安全性》服务器身份验证选中SQLServer和Windows身份验证模式。
返回数据源,点左边号展开,安全性》登录名》sa,右键属性,常规设置密码,取消勾选强制实施密码策略,状态设置登录启用。
重新连接数据库引擎,身份验证选择Windows身份验证,输入登录名密码即可。
//这是我以前写的核对数据库实现登陆的方法,你只看jdbc部分就好,我还特地给你加了点注释\x0d\String sql = "select username,password from account";\x0d\String user = requestgetParameter("user");\x0d\String pass = requestgetParameter("password");\x0d\int j = 0;\x0d\Connection conn = null;\x0d\PreparedStatement ps = null;\x0d\ResultSet rs = null;\x0d\try {\x0d\conn = JDBCTools1getConnection();\x0d\ps = connprepareStatement(sql);\x0d\rs = psexecuteQuery();\x0d\//从表中查询获取所有账户的用户名&密码的ResultSet 对象\x0d\while(rsnext()){\x0d\int i = 0;\x0d\\x0d\String username[] = new String[10];//用户名数组\x0d\String password[] = new String[10];//密码数组\x0d\username[i] = rsgetString(1);\x0d\password[i] = rsgetString(2);\x0d\if(userequals(username[i])&&passequals(password[i])){//比对\x0d\responsegetWriter()print("you are welcome!");\x0d\j++;\x0d\}else if(userequals(username[i])&&!passequals(password[i])){\x0d\responsegetWriter()println("the realy password is :"+ username[i] +","+password[i]+"\r\n");\x0d\responsegetWriter()println("and you password is :"+user +","+pass+" :so the username or password may not right");\x0d\j++;\x0d\}else{\x0d\continue;\x0d\}\x0d\i++;\x0d\}\x0d\if(j == 0){\x0d\responsegetWriter()println("Your username may not be properly");\x0d\}\x0d\} catch (Exception e) {\x0d\eprintStackTrace();\x0d\}finally{\x0d\JDBCTools1release(rs, ps, conn);\x0d\}\x0d\//这是我JDBCTools的getConnection方法\x0d\getConnection{\x0d\String driverClass = oraclejdbcdriverOracleDriver;\x0d\String jdbcUrl = jdbc:oracle:thin:@localhost:1521:orcl;\x0d\//你的数据库的用户名密码\x0d\String user = null;\x0d\String password = null;\x0d\// 通过反射创建Driver对象\x0d\ClassforName(driverClass);\x0d\return DriverManagergetConnection(jdbcUrl, user, password);}\x0d\//这是我JDBCTools的release方法\x0d\public static void release(ResultSet rs, Statement statement,\x0d\Connection conn) {\x0d\if (rs != null) {\x0d\try {\x0d\rsclose();\x0d\} catch (SQLException e) {\x0d\eprintStackTrace();\x0d\}\x0d\}\x0d\\x0d\if (statement != null) {\x0d\try {\x0d\statementclose();\x0d\} catch (Exception e2) {\x0d\e2printStackTrace();\x0d\}\x0d\}\x0d\\x0d\if (conn != null) {\x0d\try {\x0d\connclose();\x0d\} catch (Exception e2) {\x0d\e2printStackTrace();\x0d\}\x0d\}\x0d\}
以上就是关于asp.net和access数据库连接的用户登录,要使用session对象验证全部的内容,包括:asp.net和access数据库连接的用户登录,要使用session对象验证、你好,请问用VS2008如何做登录界面,并且连接数据库做简单的用户登陆验证、php连接数据库验证用户名密码没输入账号直接提示失败 去掉exit('登录失败!'); 可以正常登录,请大佬看看等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)