从Classic ASP应用程序连接到SQLExpress

时间:2015-10-08 15:46:59

标签: javascript asp-classic connection-string sql-server-express

我有一个本地SQLExpress数据库。我需要从经典的ASP Web应用程序连接到它。

我认为我的连接字符串是正确的,因为当我使用C#控制台应用程序测试时,我能够连接和读取数据:

// C# Example app
var connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=TestData;Integrated Security=True";
var con = new SqlConnection(connectionString);

 con.Open();
 var cmd = new SqlCommand("SELECT * FROM tbl", con);

 cmd.ExecuteNonQuery();
 var reader = cmd.ExecuteReader();
 while(reader.Read())
 {
    Console.WriteLine(reader.GetValue(1)); // displays data
 }

但是,当我在ASP Web应用程序中使用相同的字符串时,它会失败:

// ASP Web App
connection = Server.CreateObject("ADODB.Connection");
connectionString = "Data Source=.\\SQLEXPRESS;Initial Catalog=TestData;Integrated Security=True";
Response.Write("connectionString:" + connectionString + "<br/>");
connection.Open(Application(connectionString)); // error

Open方法失败:

  

0x80004005 - 用于ODBC驱动程序的Microsoft OLE DB提供程序:   [Microsoft] [ODBC驱动程序管理器]未找到数据源名称,没有   指定默认驱动程序

我还尝试为SQL数据库设置登录并使用用户ID和密码:

var connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=TestData;User Id=AspTest;Password=Test";

这以同样的方式失败。

如何让我的网络应用程序连接到我的数据库?

3 个答案:

答案 0 :(得分:2)

如果您显示的ASP代码是您实际使用的,则Application(connectionString)很可能返回null / nothing,因为应用程序对象是字典。您是否尝试直接使用连接字符串打开连接:

connection.Open(connectionString); 

通常的模式是在global.asa中分配Application(“conectionString”)=“your connection string”,然后使用以下代码创建连接:

connection.Open(Application("connectionString")); 

此外,您需要为ASP和.NET提供不同的连接字符串,如前面的答案所示。

答案 1 :(得分:1)

步骤:

  1. 为本地SQL数据库添加用户(包括用户名和 密码)
  2. 授予用户读取,写入,选择(所有)项目数据库的权限(YMMV - 我的应用程序需要它)
  3. 配置ODBC(32位)(C:\ Windows \ SysWOW64 \ odbcad32.exe),以便&#34; SqlConnectString&#34;使用SQL本机客户端11连接到(本地)\ SQLEXPRESS

    • 设置SQL登录凭据
    • 将默认DB设置为testDB
  4. 更改ASP连接代码: con.Open(应用(&#34; SqlConnectString&#34)); 至 con.Open(&#34; DSN = SqlConnectString;用户ID = [用户名];密码= [密码]&#34;);

  5. 您过时的ASP代码现在与SQL Express进行对话。

答案 2 :(得分:-1)

你试过了吗?

connString =“Provider = SQLOLEDB; SERVER = MYSERVER \ SQLEXPRESS; Database = MYDB; Uid = sa; Pwd = Pass!@#”