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(); 展开
登陆代码
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(); 展开
4个回答
展开全部
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 + "'"
按照你的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 + "'"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把你的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 + "'"
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string sql =string.Format("select * from login_user where username='{0}' and password='{1}'", this.txtusername.Text , this.txtpassword.Text );
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int state = Convert.ToInt32(cmd.ExecuteScalar().tostring());//执行sql语句,并返回获得值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询