中国山西名楼:遇到了一个很奇怪的问题ajax+asp.net(c#)在使用access数据库的时候.

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/06 01:31:35
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
Ajax.Utility.RegisterTypeForAjax(typeof(Login));
}

[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
public string PassError(string username,string password)
{
OleDbConnection myConn = DB.CreateConnection();
try
{
myConn.Open();
string mysql="select * from tb_admin where username='"+username+"' and password='"+password+"'";
OleDbCommand myComm = new OleDbCommand(mysql,myConn);
OleDbDataReader myReader = myComm.ExecuteReader();
if(myReader.Read())
return "true";
else
return "false";
}
catch(Exception es)
{
Response.Write(es.Message);
return es.Message;
}

}

客户端代码

Login.PassError(username,password,pass_callback);

遇到很郁闷的问题,在跟踪进行调试的时候能进入PassError函数体内,但是一到myConn.Open()就停掉了函数跳出,而同样的代码用sqlserver却一点问题都没,请高手帮忙解决下虽然分不多:(
问题代码下载 http://www.cumtstu.com/ajaxblog_.rar 再次谢谢 Q:556256

public class DB
{
public static OleDbConnection CreateConnection()
{
string connStr ;
connStr = ConfigurationSettings.AppSettings["loveff"] ;
return new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+System.Web.HttpContext.Current.Server.MapPath(connStr));

}

}

谢谢!
不是数据库的问题,如果不用 ajax的话是能查询出结果的,能执行sql 操作,所以说路径是可以的

把web.config中的connStr 贴出来看看,应该是这错了。
看了一下,是相对路径的问题,有三种办法:
1。 把"data/lovefeifei.mdb"改成:
"~/data/lovefeifei.mdb"(这个好像只有ASP.NET 2.0支持);

2。 或者只能用“/”路径,然后一步一步往下找了。

3。 或者直接用绝对路径,D:\xxx\ss.mdb