请教各位大侠:asp.net使用c#如何操作access数据库

firecannon 2005-08-01 04:20:59
我做了个留言簿,使用sql server2000数据库,调试通过,但我想改成access数据库,但总是出错,后来我做了个简单的注册、登陆、修改资料的程序,使用access数据库,注册写入数据库正常、登陆查询数据库也正常,但修改数据库就提示错误,不知道是不是语句用得不对,还是有些地方(如数据库的安全、数据库源)设置的问题。请教大侠,谢谢指点!
附源程序:
注册
private void Button2_Click(object sender, System.EventArgs e)
{
OleDbConnection Myconn=new OleDbConnection((string)Application["OleDbConnectionString"]);
string strIns="Insert Into aduser (adpwd,adphone,ademail,adweb,adqq,adname,adrname) Values('"+this.TBconfirm.Text+"','"+this.TBphone.Text+"','"+this.TBemail.Text+"','"+this.TBweb.Text+"','"+this.TBqq.Text+"','"+this.TBname.Text+"','"+this.TBrname.Text+"')";
OleDbCommand mycmd=new OleDbCommand(strIns,Myconn);
Myconn.Open();
try
{
mycmd.ExecuteNonQuery();
Response.Write("成功操作数据库");

}
catch
{
Response.Write("写入数据库出错");
}
finally
{
Myconn.Close();
Response.Redirect("login.aspx");
}
}

登陆:
private void Button1_Click(object sender, System.EventArgs e)
{
OleDbConnection Myconn=new OleDbConnection((string)Application["OleDbConnectionString"]);
string strsel="select adminid from aduser where adname='"+this.adminuser.Text+"'and adpwd='"+this.password.Text+"'";
OleDbCommand cmd = new OleDbCommand(strsel,Myconn);
Myconn.Open();
OleDbDataReader reader=cmd.ExecuteReader();
if(reader.Read())
{
Session["userid"]=reader["adminid"].ToString();
Session["user"]="管理员";
reader.Close();
Myconn.Close();
Response.Redirect("change.aspx");
}
else
{
Label1.Text="输入管理员密码不正确";
Label1.Visible=true;
reader.Close();
Myconn.Close();
}

}
修改资料:
private void Button2_Click(object sender, System.EventArgs e)
{

OleDbConnection Myconn=new OleDbConnection((string)Application["OleDbConnectionString"]);
string strUpdate="Update aduser set adpwd='"+ this.TBconfirm.Text +"',adphone='"+ this.TBphone.Text +"',ademail='"+this.TBemail.Text+"',adweb='"+this.TBweb.Text+"',adqq='"+this.TBqq.Text+"',adname='"+this.TBname.Text+"',adrname='"+this.TBrname.Text+"' Where adminid='"+Session["userid"].ToString()+"'";
Myconn.Open();
OleDbCommand Mycomm=new OleDbCommand(strUpdate,Myconn);
try
{
Mycomm.ExecuteNonQuery();
Response.Write("成功操作数据库");
}
catch
{
Response.Write(Myconn.ConnectionString + "更新数据库失败....<BR>");
}
finally
{
Mycomm.Dispose();
Myconn.Close();
}
}
...全文
159 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
leonstriff 2005-08-02
  • 打赏
  • 举报
回复
如果 accesss里面的 userid 是32位长度。则如下: userid = int32.Parse(Session["userid"].ToString()); 如果是16位长度则是 userid = int16.Parse(Session["userid"].ToString()); 其中左式的userid与access的userid匹配。很久没写#代码,可能有些错误,大概处理方法是这样。高手请不要笑话阿:)
firecannon 2005-08-02
  • 打赏
  • 举报
回复
谢谢!我看了,不行!毛病我已找到,就是数据类型不匹配.不知道access数据库中的长整型怎么与c#中数据匹配,我userid是主键而且是长整型,自增。我在C#中应如何更改Session["userid"].toString()来和access数据库中的userid匹配?
firecannon 2005-08-02
  • 打赏
  • 举报
回复
谢谢楼上的,不好意思,问题解决了,不是要转化的问题,而是我自己搞错了,数值型的不用单引号的。
jerry_yuan 2005-08-01
  • 打赏
  • 举报
回复
看看数据库文件的权限

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧