ADO.Net连接SQL Azure数据库教程详解
在.Net环境下,连接数据库最常用的方法是使用ADO.Net。在SQL Azure环境下,ADO.Net
可以继续使用,这样对于.Net环境下的开发者来说,不用学习新的知识与技能就可以很容易
的连接到SQL Azure数据库上,这也符合微软所一直在宣传的云计算战略,减少了单独学习云
应用开发的成本。
要使用ADO.Net连接SQL Azure,有两种方法,一种是通过SQL Azure的门户管理页面提供
的连接字符串来连接;另一种方法是在程序里硬写,下面我们来介绍第二种方法。
使用程序连接到SQL Azure,需要使用
System.Data.SqlClient.SqlConnectionStringBuilder类,实例代码如下:
private string GetDbConnection()
{
SqlConnectionStringBuilder connBuilder =
new SqlConnectionStringBuilder();
string server = "unjikh4kim.database.windows.net";
connBuilder.DataSource = server;
connBuilder.InitialCatalog = "TestDB";
connBuilder.Encrypt = true;
connBuilder.TrustServerCertificate = true;
connBuilder.UserID = "sqladmin";
connBuilder.Password = "pass@word";
return connBuilder.ToString();
}
使用连接字符串,执行SQL语句
private void ExcuteSQL()
{
using (SqlConnection conn = new SqlConnection(GetDbConnection()))
{
using (SqlCommand command = conn.CreateCommand())
{
conn.Open();
// 创建表
command.CommandText =
"CREATE TABLE MyTable1(Column1 int primary key clustered, " +
"Column2 varchar(50), Column3 datetime)";
command.ExecuteNonQuery();
// 插入数据
command.CommandText = String.Format
("INSERT INTO MyTable1 (Column1, Column2, Column3) " +
"values ({0}, '{1}', '{2}')", 1, "TestData", DateTime.Now.ToString("s"));
int rowsAdded = command.ExecuteNonQuery();
DisplayResults(command);
}
}
}
现在我们来看看这段代码干了些什么
1.首先,代码使用SqlConnectionStringBuilder对象来连接SQL Azure Database的master数
据库,然后以sampleDatabaseName字符串值为名来创建一个数据库
2.使用另一个SqlConnectionStringBuilder对象来连接到第一步创建的数据库
3.一旦连接上SQL Azure Database 里面刚创建的数据库,我们使用第二个
SqlConnectionStringBuilder来创建数据库表以及一些示例数据操作
4.最后,代码在数据修改前和修改后返回数据到控制台程序
如果大家想阅读连接SQL Azure的一些具体细节信息,可以参阅Connecting to a Data
Source (ADO.NET)
1.使用vs创建一个控制台程序
2.将上述代码中
login@server,如果你需要了解更多有关账户的信息可以查阅Managing Databases and
Logins in SQL Azure一文。
3.替换
4.替换
servername.database.windows.net,与登陆格式‘@“符号后面部分应该是一样的。
5.
受支持的Transact-SQL特性:
常数
数据限制
数据光标
数据库索引管理与索引重建
本地数据库暂存表格
保留字
预存程序
数据库统计管理
数据库交易
触发程序
数据库表、数据表联结以及表格变量
Transact-SQL语言元素,像是对数据库、表格、用户与登录等的建立、修改与删除
用户定义函数
查看表
未受支持的Transact-SQL特性:
SQL CLR
数据库文件配置
数据库映射
分布式查询
分布式交易
文件组群管理
全局暂存表格
稀疏数据与索引
SQL Server组态选项
SQL Server Service Broker
系统表格
追踪旗标。
注意点:
通过以上的例子,我们已经对连接SQL Azure有了一些基本认识,现在我们来讨论一下这之间
我们需要注意的一些小问题
为了避免遭受注入攻击,我们使用SqlConnectionStringBuilder类,这也是.net framework
框架自带的类
我们需要很好的保护我们的连接字符串信息,如果让别人知道了,他们可以使用我们的数据
并且进行篡改等等一切毁灭性的损失
由于我们与SQL Azure通信过程中,这之间不知道要经过多少个路由节点,为了保护我们的连
接字符串不被别人盗用,所以我们最好设置ADO.NET Encrypt 和 TrustServerCertificate
connection parameters,如代码所示将Encrypt = True,TrustServerCertificate = False
能够确保我们的连接字符串得到加密,任何在通信中间拦截的人获取了你的连接字符串也是
没有用的。