日期:2014-05-17  浏览次数:20947 次

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"/>
这样试试