文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>ADO.Net连接SQL Azure数据库详解

ADO.Net连接SQL Azure数据库详解

时间:2011-05-23  来源:陈学阳

  在.Net环境下,连接数据库最常用的方法是使用ADO.Net。在SQL Azure环境下,ADO.Net

可以继续使用,这样对于.Net环境下的开发者来说,不用学习新的知识与技能就可以很容易

的连接到SQL Azure数据库上,这也符合微软所一直在宣传的云计算战略,减少了单独学习云

应用开发的成本。

  要使用ADO.Net连接SQL Azure,有两种方法,一种是通过SQL Azure的门户管理页面提供

的连接字符串来连接;另一种方法是在程序里硬写,下面我们来介绍第二种方法。

  使用程序连接到SQL Azure,需要使用

 1 System.Data.SqlClient.SqlConnectionStringBuilder类,实例代码如下:
2  private string GetDbConnection()
3   {
4   SqlConnectionStringBuilder connBuilder =
5   new SqlConnectionStringBuilder();
6   string server = "unjikh4kim.database.windows.net";
7   connBuilder.DataSource = server;
8   connBuilder.InitialCatalog = "TestDB";
9   connBuilder.Encrypt = true;
10   connBuilder.TrustServerCertificate = true;
11   connBuilder.UserID = "sqladmin";
12   connBuilder.Password = "pass@word";
13   return connBuilder.ToString();
14   }
15   使用连接字符串,执行SQL语句
16   private void ExcuteSQL()
17   {
18   using (SqlConnection conn = new SqlConnection(GetDbConnection()))
19   {
20   using (SqlCommand command = conn.CreateCommand())
21   {
22   conn.Open();
23   // 创建表
24   command.CommandText =
25   "CREATE TABLE MyTable1(Column1 int primary key clustered, " +
26   "Column2 varchar(50), Column3 datetime)";
27   command.ExecuteNonQuery();
28   // 插入数据
29   command.CommandText = String.Format
30   ("INSERT INTO MyTable1 (Column1, Column2, Column3) " +
31   "values ({0}, '{1}', '{2}')", 1, "TestData", DateTime.Now.ToString("s"));
32   int rowsAdded = command.ExecuteNonQuery();
33   DisplayResults(command);
34   }
35   }
36   }

现在我们来看看这段代码干了些什么

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.将上述代码中<ProvideUserName>替换为SQL Azure Database 登录名,格式如

login@server,如果你需要了解更多有关账户的信息可以查阅Managing Databases and

Logins in SQL Azure一文。

3.替换<ProvidePassword>为你的账户密码。

4.替换<ProvideServerName>为你的SQL Azure 服务器名,如

servername.database.windows.net,与登陆格式‘@“符号后面部分应该是一样的。

5.<ProvideDatabaseName>即是你想用你的代码创建的数据库名(原来不存在的)。

受支持的Transact-SQL特性:
         常数 
        数据限制 
         数据光标 
        数据库索引管理与索引重建 
         本地数据库暂存表格 
         保留字 
         预存程序 
         数据库统计管理 
         数据库交易 
         触发程序 
         数据库表、数据表联结以及表格变量 
         Transact-SQL语言元素,像是对数据库、表格、用户与登录等的建立、修改与删除 
         用户定义函数 
         查看表 
未受支持的Transact-SQL特性:
         SQL CLR 
         数据库文件配置 
         数据库映射 
         分布式查询 
         分布式交易 
         文件组群管理 
         全局暂存表格 
         稀疏数据与索引 
         SQL Server组态选项 
         SQL Server Service Broker 
         系统表格 
         追踪旗标。


注意点:

通过以上的例子,我们已经对连接SQL Azure vae有了一些基本认识,现在我们来讨论一下这之间

我们需要注意的一些小问题

为了避免遭受注入攻击,我们使用SqlConnectionStringBuilder类,这也是.net framework

框架自带的类
我们需要很好的保护我们的连接字符串信息,如果让别人知道了,他们可以使用我们的数据

并且进行篡改等等一切毁灭性的损失
由于我们与SQL Azure通信过程中,这之间不知道要经过多少个路由节点,为了保护我们的连

接字符串不被别人盗用,所以我们最好设置ADO.NET Encrypt 和 TrustServerCertificate

connection parameters,如代码所示将Encrypt = True,TrustServerCertificate = False

能够确保我们的连接字符串得到加密,任何在通信中间拦截的人获取了你的连接字符串也是

没有用的。

相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载