繁体   English   中英

经典的ASP和SQL数据库Azure

[英]classic asp and sql database azure

我们正在迁移到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的虚拟机中运行它

答案是必须安装SQL本机客户端。

http://go.microsoft.com/fwlink/?LinkID=239648&clcid=0x409

遇到过同样的问题。 尽管安装正确的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;"

对于经典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更改为您的信息。

您很可能需要使用ODBC来实现连接。 可以在MSDN上找到详细信息: http : //msdn.microsoft.com/en-us/library/azure/hh974312.aspx

使用以下连接字符串

Driver={SQL Server Native Client 10.0};Server=tcp:[serverName].database.windows.net;
Database=myDataBase;Uid=[LoginForDb]@[serverName];Pwd=myPassword;Encrypt=yes;

看到链接

 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; } } } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM