C#登陆失败,未处理FormatException,输入字符串的格式不正确。

错误代码:intstate=Convert.ToInt32(cmd.ExecuteScalar());登陆代码stringstrConnection="Provider=... 错误代码: int state = Convert.ToInt32(cmd.ExecuteScalar());

登陆代码
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";

strConnection += @"Data Source=C:\Users\thtf\Desktop\新建文件夹\管理系统\管理系统\Database\xiangmu.mdb"; // 定义连接

OleDbConnection objConnection = new OleDbConnection(strConnection);

objConnection.Open();
string sql = "select * from login_user where username='" + this.txtusername.Text + "' and password='" + this.txtpassword.Text + "'";
OleDbCommand cmd = new OleDbCommand(sql, objConnection);
int state = Convert.ToInt32(cmd.ExecuteScalar());//执行sql语句,并返回获得值

if (state == 0)//如果数据中没有记录或有多条记录则抱错
{

MessageBox.Show("用户不存在,请检测用户名和密码是否正确!");

}
else
{
main2Form main2 = new main2Form();
main2.Show();
this.Hide();
}
objConnection.Close();
展开
 我来答
pyzhaowei
2011-09-29 · 超过11用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:81.2万
展开全部
ExecuteScalar 方法 返回查询的值为第一行第一个单元格的值。。。
按照你的SQL来看,你是在查询是否存在录入账号密码对应的记录,所以应该用聚合函数COUNT来解决。
把SQL语句
select * from login_user where username='" + this.txtusername.Text + "' and password='" + this.txtpassword.Text + "'"
改成
select count(*) from login_user where username='" + this.txtusername.Text + "' and password='" + this.txtpassword.Text + "'"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2cdb4e3
2011-09-29 · 超过25用户采纳过TA的回答
知道答主
回答量:175
采纳率:0%
帮助的人:77万
展开全部
把你的sql语句select * from login_user where username='" + this.txtusername.Text + "' and password='" + this.txtpassword.Text + "'"改成select count(*) from login_user where username='" + this.txtusername.Text + "' and password='" + this.txtpassword.Text + "'"
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a7339fa40
2011-09-29 · TA获得超过703个赞
知道小有建树答主
回答量:389
采纳率:0%
帮助的人:240万
展开全部
string sql =string.Format("select * from login_user where username='{0}' and password='{1}'", this.txtusername.Text , this.txtpassword.Text );
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaoshu666
2011-09-29 · 超过21用户采纳过TA的回答
知道答主
回答量:82
采纳率:0%
帮助的人:20.3万
展开全部
int state = Convert.ToInt32(cmd.ExecuteScalar().tostring());//执行sql语句,并返回获得值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式