请帮忙看一下C#连接Acess数据库的问题

来源:百度知道 编辑:UC知道 时间:2024/05/11 12:31:37
private void button1_Click(object sender, System.EventArgs e)
{
OleDbConnection conObj;
conObj = new OleDbConnection();
conObj.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data source = " + Application.StartupPath + @"\用户.mdb";
conObj.Open();
dl.UserID=this.User.Text.Trim();
UserPwd=this.Pwd.Text.Trim();

DataSet ds=new DataSet();
try
{
OleDbDataAdapter sda=new OleDbDataAdapter("select * from 用户 where 用户名='"+dl.UserID+"' and 密码='"+UserPwd+"'",conObj);
if(dl.UserID!="")
{
sda.Fill(ds);
int i=ds.Tables["用户"].Rows.Count;
if(i>0)
{
bResult=true;
frmLogin frm1=new frmLogin();
this.Hide();
frmMain frm2=new frmMain();
frm2.Show();

看看我成功的代码,希望对你有所启发
conn.Open();

string strsql = "select sid1,select1 from selecttable where tid1='" + Convert.ToString(Session["tid2"]) + "'";
OleDbDataAdapter rds = new OleDbDataAdapter();
rds.SelectCommand = new OleDbCommand(strsql, conn);
DataSet rs = new DataSet();
rds.Fill(rs,"selecttable");

this.GridView1.DataSource=rs.Tables["selecttable"];
this.GridView1.DataBind();

conn.Close();

1.首先这个语句应该先就要判断 if(dl.UserID!="") ,
在生产sql语句前,像你这样写法即使用户没输入也会去表里面查询,这样不好。
2.OleDbDataAdapter sda=new OleDbDataAdapter("select * from 用户 where 用户名='"+dl.UserID+"' and 密码='"+UserPwd+"'",conObj);
OleDbDataAdapter 没有这样的构造函数,而是OleDbCommand.此句应该是:
OleDbCommand dc=new OleDbCommand("select * from 用户 where 用户名='&quo