System.Data.OleDb.OleDbException: 文件名无效。 在线求解
数据库ACCESS连接时这样的:
private static String connectionString = ConfigurationManager.AppSettings["OLEDBCONNECTIONSTRING"].ToString() + System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["dbPath"]);
public AccessorDB() { }
配置文件时这样的:<appSettings>
<!-- access 连接字符串-->
<add key="OLEDBCONNECTIONSTRING" value="provider=microsoft.jet.oledb.4.0;data source=xys.mdb"/>
<add key="dbPath" value="~/App_Data/xys.mdb"/>
<add key="CookieDomain" value=""/>
问题出现在下面代码中: //执行单条语句返回第一行第一列,可以用来返回count(*)
public static int ExecuteScalar(string sql, OleDbParameter[] parameters)
{
//Debug.WriteLine(sql);
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
OleDbCommand cmd = new OleDbCommand(sql, connection);
try
{
connection.Open();
if (parameters != null) cmd.Parameters.AddRange(parameters);
int value = Int32.Parse(cmd.ExecuteScalar().ToString());
return value;
}
catch (Exception e)
{
throw e; <-------在这里报错!~~~~~~~~~~~~~~~~~~~~~~~
}
}
}
------解决方案--------------------把你的连接字符串改成绝对路径试试
------解决方案--------------------http://topic.csdn.net/u/20110503/13/4563aec5-4215-4ad7-a26d-bfa866355902.html
看这里,路径问题。
------解决方案--------------------数据库路径
------解决方案--------------------<add key="OLEDBCONNECTIONSTRING" value="provider=microsoft.jet.oledb.4.0;data source=App_Date/xys.mdb"/>
这样试试