连接到asp.net c#(托管网站)中的数据库(MS Access)

时间:2013-05-14 13:09:43

标签: c# asp.net ms-access

我有一个托管网站,我需要添加一个包含密码和登录信息的数据库。 (MS Access DB),我尝试了很多,但无法与它连接(在本地机器上工作)。我试图更改连接字符串,但它仍然无法正常工作。数据库位于App_Data文件夹中。这是我在Login.aspx页面中输入的内容:

OleDbConnection con = new OleDbConnection();
con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
   + Server.MapPath("~\\App_Data\\WebSiteDatabase.accdb");
con.Open();

这不起作用。我需要改变什么?我把我的网站放在somee.com上

1 个答案:

答案 0 :(得分:3)

您是否检查了SOMEE​​上的帮助页面以连接到访问数据库?

来自Somee.com的帮助:

  

使用无DSN连接
连接到MS访问数据库   仅限多卡   提供与Access数据库的无DSN连接,因为它们是   更快,没有可能的名称冲突。大部分的   问题在于选择正确的连接字符串。这是一个例子   已测试的连接字符串到MS Access数据库:
          我们假设您的数据库位于“数据库”子文件夹中,其名称为“TestDB.mdb”
  你必须使用   Server.MapPath(“Database\TestDB.mdb”)为了获得身体   数据库的位置。

所以连接字符串是:

"PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("Database\TestDB.mdb") 

利用它的方式:

OleDbConnection conn = null;
OleDbDataReader reader = null;
try
{
    conn = new OleDbConnection(
        "Provider=Microsoft.Jet.OLEDB.4.0; " + 
        "Data Source=" + Server.MapPath("Database/TestDB.mdb"));
    conn.Open();

    OleDbCommand cmd = 
        new OleDbCommand("Select * FROM Table1", conn);
    reader = cmd.ExecuteReader();

    datagrid.DataSource = reader;
    datagrid.DataBind();
}
    //        catch (Exception e)
    //        {
    //            Response.Write(e.Message);
    //            Response.End();
    //        }
finally
{
    if (reader != null)  reader.Close();
    if (conn != null)  conn.Close();
}