我们正在迁移到Azure并且有一个应用程序仍然使用传统的ASP。我们已将需要与之通信的数据库迁移到Azure中的SQL数据库。
寻找有关如何使用经典ASP连接SQL数据库的指导或示例。
这是我们现在所拥有的。
ConnString = "DRIVER=SQL Server Native Client 10.0;Server=servername.database.windows.net,1433;Database=azuredb;UID=user@serve rname;PWD=password;Encrypt=yes;TrustServerCertificate=no;"
Set Conn = CreateObject("ADODB.Connection")
Conn.Open ConnString
set rs=Server.CreateObject("ADODB.recordset")
SQL = "SELECT * from table"
rs.Open( SQL )
连接字符串(为了便于阅读)
SQL Server Native Client 10.0;Server=servername.database.windows.net,1433; Database=azuredb;UID=user@serve rname;PWD=password;Encrypt=yes; TrustServerCertificate=no;
通过上述连接,我们收到以下错误
Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
我们在运行Server2008 R2的VM中运行它
答案 0 :(得分:1)
答案是您必须安装SQL本机客户端。
答案 1 :(得分:1)
遇到同样的问题。虽然安装正确的SQL本机客户端作为另一个答案提及可能是理想的修复,但快速修复只是将驱动程序更改为“SQL Server”。
例如,从Driver={SQL Server Native Client 10.0};
到Driver={SQL Server};
在您的情况下,您的连接字符串应为:
ConnString = "Driver={SQL Server};Server=servername.database.windows.net,1433;Database=azuredb;UID=user@serve rname;PWD=password;Encrypt=yes;TrustServerCertificate=no;"
答案 2 :(得分:0)
对于经典ASP:
设置Con = server.createobject(“ ADODB.Connection”) Con.Open“ Provider = SQLOLEDB; Server = XXXXX.database.windows.net,1433; User ID = XXXXX; Password = XXXXX; Initial Catalog = XXXXX;”
您必须将XXXXX更改为您的信息。
答案 3 :(得分:-1)
您很可能需要使用ODBC来实现连接。有关详细信息,请访问MSDN:http://msdn.microsoft.com/en-us/library/azure/hh974312.aspx
答案 4 :(得分:-1)
使用以下连接字符串
Driver={SQL Server Native Client 10.0};Server=tcp:[serverName].database.windows.net; Database=myDataBase;Uid=[LoginForDb]@[serverName];Pwd=myPassword;Encrypt=yes;
请参阅link。
答案 5 :(得分:-1)
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
namespace Volta_Reporting_Application.DBL
{
public class DBHandler
{
public SqlConnection _SqlConnection { get; set; }
public String _SqlConnectionString { get; set; }
public DataSet _DataSet { get; set; }
public List<SqlCommand> _CommandList { set; get; }
public DBHandler()
{
//_SqlConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; ;
_SqlConnectionString = Helpers.Helper.GetConnectionString();
}
public bool OpenConnection()
{
_SqlConnection = new SqlConnection(_SqlConnectionString);
if (SqlConnection != null && SqlConnection.State == ConnectionState.Closed)
{
_SqlConnection.Open();
}
.Open);
}
public bool CloseConnection()
{
if (SqlConnection != null && SqlConnection.State == ConnectionState.Open)
_SqlConnection.Close();
if (_SqlConnection != null)
_SqlConnection.Dispose();
return _SqlConnection == null;
}
public object ExecuteMyCommand(SqlCommand cmd)
{
bool res = false;
try
{
OpenConnection();
cmd.Connection = _SqlConnection;
if (cmd.ExecuteNonQuery() > 0)
{
res = true;
}
}
catch (Exception)
{
res = false;
}
finally
{
CloseConnection();
}
return res;
}
public object CRUD(string Query, char operation = 'c')
{
operation = char.Parse(operation.ToString().ToLower());
object res = null;
try
{
OpenConnection();
SqlDataAdapter da = new SqlDataAdapter();
switch (operation)
{
case 'c':
case 'i':
da.InsertCommand = _SqlConnection.CreateCommand();
da.InsertCommand.CommandText = Query;
da.InsertCommand.ExecuteNonQuery();
res = true;
break;
case 'z':
da.SelectCommand = _SqlConnection.CreateCommand();
da.SelectCommand.CommandText = Query;
return da.SelectCommand.ExecuteScalar();
case 's':
case 'r':
DataSet ds = new DataSet();
da.SelectCommand = _SqlConnection.CreateCommand();
da.SelectCommand.CommandText = Query;
//da.SelectCommand.ExecuteReader();
da.Fill(ds);
res = ds;
//ds.Dispose();
break;
case 'u':
da.UpdateCommand = _SqlConnection.CreateCommand();
da.UpdateCommand.CommandText = Query;
res=da.UpdateCommand.ExecuteNonQuery();
break;
case 'd':
da.DeleteCommand = _SqlConnection.CreateCommand();
da.DeleteCommand.CommandText = Query;
da.DeleteCommand.ExecuteNonQuery();
res = true;
break;
default: break;
}
if (res == null)
res = false;
}
catch (Exception)
{
res = null;
}
finally
{
CloseConnection();
}
return res;
}
}
}