我的登陆程序是这样的String connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
connStr+=@"D:\旅游信息网\旅游信息网\travel.mdb";
//strConnection+=@"Data Source=C:BegASPNETNorthwind.mdb";
OleDbConnection con = new OleDbConnection(connStr);
con.Open(); string sql = "select count (*) from User where username='" + this.TextBox1.Text.Trim() + "' and password='" + this.TextBox2.Text.Trim() + "'";
//sql = "select count(*) from user where username='" + a + "' and password='" + b + "'";//建立sql查询语句
OleDbCommand cmd = new OleDbCommand(sql, con);
//OleDbCommand cmd = new OleDbCommand(sql, con);
int state = Convert.ToInt32(cmd.ExecuteScalar());//执行sql语句,并返回获得值
if (state == 0 || state > 1)//如果数据中没有记录或有多条记录则抱错
{
this.Label3.Text = "用户不存在,请检测用户名和密码是否正确!";
}
else
{
this.Label3.Text = "登入成功!";
}
}但是程序就是老报错,报"用户代码未处理.oledbexception"请问大家是怎么回事呢???
谢谢拉!!!
connStr+=@"D:\旅游信息网\旅游信息网\travel.mdb";
//strConnection+=@"Data Source=C:BegASPNETNorthwind.mdb";
OleDbConnection con = new OleDbConnection(connStr);
con.Open(); string sql = "select count (*) from User where username='" + this.TextBox1.Text.Trim() + "' and password='" + this.TextBox2.Text.Trim() + "'";
//sql = "select count(*) from user where username='" + a + "' and password='" + b + "'";//建立sql查询语句
OleDbCommand cmd = new OleDbCommand(sql, con);
//OleDbCommand cmd = new OleDbCommand(sql, con);
int state = Convert.ToInt32(cmd.ExecuteScalar());//执行sql语句,并返回获得值
if (state == 0 || state > 1)//如果数据中没有记录或有多条记录则抱错
{
this.Label3.Text = "用户不存在,请检测用户名和密码是否正确!";
}
else
{
this.Label3.Text = "登入成功!";
}
}但是程序就是老报错,报"用户代码未处理.oledbexception"请问大家是怎么回事呢???
谢谢拉!!!
先将
string sql = "select count (*) from User where username='" + this.TextBox1.Text.Trim() + "' and password='" + this.TextBox2.Text.Trim() + "'";
中的字段名表名之类的加个方括号试试
string sql = "select count (*) from [User] where [username]='" + this.TextBox1.Text.Trim() + "' and [password]='" + this.TextBox2.Text.Trim() + "'";
cmd.Parameters.AddWithValue("@userName",this.TextBox1.Text.Trim());
cmd.Parameters.AddWithValue("@password",this.TextBox2.Text.Trim());
int state = Convert.ToInt32(cmd.ExecuteScalar());
if(state > 0)
//
else
//
说明你这个cmd.ExecuteScalar()返回的值不是可以转换为int型的内容
先 object o= Convert.ToInt32(cmd.ExecuteScalar());
看看返回的是什么内容
要注意:cmd.ExecuteScalar返回的是符合条件的第一行第一列的内容。