接的是WEBCONFIG中CONN ACESS数据库 OLEDB方式
我目前理解连接ACESS就要用OLEDB方式,连接SQL用SQL的方式?这种理解对吗? 下面是错误源代码,麻烦看下
using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.Common; public partial class Admin_Login : System.Web.UI.Page
{
//连接数据库
OleDbConnection conn = new OleDbConnection(ConfigurationManager.ConnectionStrings["conn"].ConnectionString); protected void Page_Load(object sender, EventArgs e)
{ }
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
string UserName = tbxaccount.Text.ToString();
string Password = tbxpwd.Text.ToString();
if (Session["CheckCode"] == null)
{
Label1ERR.Text = "系统错误,不能生成验证码";
Label1ERR.Visible = true;
return;
}
if (tbxcheckcode.Text == "")
{
Label1ERR.Text = "请输入验证码";
Label1ERR.Visible = true;
return;
}
if (String.Compare(Session["CheckCode"].ToString(), tbxcheckcode.Text, true) != 0)
{
Label1ERR.Text = "验证码错误,请输入正确的验证码。";
Label1ERR.Visible = true;
return;
}
if (UserName == "" | Password == "")
{
Label1ERR.Visible = true;
Label1ERR.Text = "请输入用户名、密码";
}
else
{
try
{
conn.Open();
String sql_ = "select * from login_users Where login_name='" + UserName + "' And login_pwd='" + Password+"'";
OleDbCommand cmd = new OleDbCommand(sql_, conn);
//就下面2句抛出异常,为什么呀?我用错了?
OleDbDataReader rs;
rs = cmd.ExecuteReader();
if (rs.Read())
{
Session["login_name"] = rs["login_name"].ToString(); //管理员名称
Session["login_power"] = rs["login_power"].ToString(); //管理权限
if (rs["login_lock"].ToString() == "1")
{
Response.Redirect("");
}
}
else
{
Response.Write("没有数据集合!");
Response.End();
}
rs.Close();
conn.Close();
}
catch (Exception rs_e)
{
Response.Write(rs_e);
Response.End();
}
}
}
}
报错:
System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。 在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) 在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) 在 System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) 在 System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) 在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) 在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery() 在 Admin_Login.ImageButton1_Click(Object sender, ImageClickEventArgs e) 位置 e:\工作区\net版新闻后台\admin\Admin_Login.aspx.cs:行号 68
我目前理解连接ACESS就要用OLEDB方式,连接SQL用SQL的方式?这种理解对吗? 下面是错误源代码,麻烦看下
using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.Common; public partial class Admin_Login : System.Web.UI.Page
{
//连接数据库
OleDbConnection conn = new OleDbConnection(ConfigurationManager.ConnectionStrings["conn"].ConnectionString); protected void Page_Load(object sender, EventArgs e)
{ }
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
string UserName = tbxaccount.Text.ToString();
string Password = tbxpwd.Text.ToString();
if (Session["CheckCode"] == null)
{
Label1ERR.Text = "系统错误,不能生成验证码";
Label1ERR.Visible = true;
return;
}
if (tbxcheckcode.Text == "")
{
Label1ERR.Text = "请输入验证码";
Label1ERR.Visible = true;
return;
}
if (String.Compare(Session["CheckCode"].ToString(), tbxcheckcode.Text, true) != 0)
{
Label1ERR.Text = "验证码错误,请输入正确的验证码。";
Label1ERR.Visible = true;
return;
}
if (UserName == "" | Password == "")
{
Label1ERR.Visible = true;
Label1ERR.Text = "请输入用户名、密码";
}
else
{
try
{
conn.Open();
String sql_ = "select * from login_users Where login_name='" + UserName + "' And login_pwd='" + Password+"'";
OleDbCommand cmd = new OleDbCommand(sql_, conn);
//就下面2句抛出异常,为什么呀?我用错了?
OleDbDataReader rs;
rs = cmd.ExecuteReader();
if (rs.Read())
{
Session["login_name"] = rs["login_name"].ToString(); //管理员名称
Session["login_power"] = rs["login_power"].ToString(); //管理权限
if (rs["login_lock"].ToString() == "1")
{
Response.Redirect("");
}
}
else
{
Response.Write("没有数据集合!");
Response.End();
}
rs.Close();
conn.Close();
}
catch (Exception rs_e)
{
Response.Write(rs_e);
Response.End();
}
}
}
}
报错:
System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。 在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) 在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) 在 System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) 在 System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) 在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) 在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery() 在 Admin_Login.ImageButton1_Click(Object sender, ImageClickEventArgs e) 位置 e:\工作区\net版新闻后台\admin\Admin_Login.aspx.cs:行号 68
select * from login_users Where login_name='aa' And login_pwd='bb'能否执行?