问题描述
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Data.SqlClient;usingSystem.Windows.Forms;namespacePWMS{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidbutlogin_Click(objectsender,EventArgse){stringConnectionString="server=.;uid=Name;pwd=Pass;database=db_pwms;";DataTabledt=newDataTable();SqlConnectionmyConnection=newSqlConnection(ConnectionString);try{myConnection=newSqlConnection(ConnectionString);myConnection.Open();//根据输入的用户名和密码到数据库查询是否有符合账号和密码的记录stringSQLString="SELECT*FROMTablewhereName=textname.TextANDPass=textPass.Text";SqlDataAdapterobjSqlDataAdapter=newSqlDataAdapter(SQLString,myConnection);dt=newDataTable();objSqlDataAdapter.Fill(dt);}catch(Exceptionex){Console.Write(ex.Message);}finally{if(myConnection.State==ConnectionState.Open){myConnection.Close();}}if(dt.Rows.Count>1){MessageBox.Show("登陆成功");}else{MessageBox.Show("登陆失败");}}}}
解决方案
解决方案二:
我也是菜鸟不太懂是不是缺少这个datasetds=newdataset();
解决方案三:
//根据输入的用户名和密码到数据库查询是否有符合账号和密码的记录stringSQLString="SELECT*FROMTablewhereName='"+textname.Text+"'ANDPass='"+textPass.Text+"'";不过这样有sql注入漏洞,你可以查找下sql参数化提交
解决方案四:
dt.Rows.Count>1应该大于0吧
解决方案五:
2L正解textname.Text和textPass.Text是当做变量来用的不能包含在双引号里面使用
解决方案六:
调试看看拼装的SQL语句有无问题就OK啦
解决方案七:
引用3楼的回复:
dt.Rows.Count>1应该大于0吧
应该是>=0,也就是说>1是可以的。
解决方案八:
SqlDataAdapterobjSqlDataAdapter=newSqlDataAdapter(SQLString,myConnection);这句是什么意思啊,不是SqlCommandobjSqlDataAdapter=newSqlCommand(SQLString,conn1);
解决方案九:
首先你的sql语句拼接错误stringSQLString="SELECT*FROMTablewhereName=textname.TextANDPass=textPass.Text";改为stringSQLString="SELECT*FROMTablewhereName='"+textname.Text+"'ANDPass='"+textPass.Text+"'";其次,前面已经DataTabledt=newDataTable();后面还newdatatable最后,判断问题if(dt.Rows.Count>1){MessageBox.Show("登陆成功");}什么意思?大于1就登陆成功,意思说等于1就不行了么?
解决方案十:
应该是大于零,根据账号和密码只能得到一条数据,直接if(dt.rows.count==1)也行