连接SQL Azure的几种方式

云计算的价值体现之一,就是对运维的封装,以便用户可以仅仅关注需要关注的部分。想当年,为了学习SQL Server数据库,需要从头安装操作系统、安装数据库、输入序列号(!)、打上补丁、配置防火墙、配置远程访问等等,就是为了把玩一小下,事后还需要慢慢维护,这又当程序员又当数据库运维的滋味,只有自己知道。不如把这个运维的任务也外包出去吧!

SQL Azure就是这么一个解决方案,开发者可以几秒钟内创建好数据库,倒入数据,直接开搞!此外,按需付费、高可用性、弹性计算、灾难恢复什么也是轻而易举的事情。这样,开发者便可以把精力放在数据库的设计和使用上,这就是所谓的术业有专攻嘛。

创建SQL Azure数据库的操作相当简单,在Windows Azure管理门户按照操作做就是了。至于AdventureWorks,微软也提供了脚本导入,搜索一下便能在CodePlex上找到,这里不再赘述。

孔(乙己)老夫子讲究茴字的几种写法,我们关心SQL Azure的几种连法。下面让我们来看看连接SQL Azure的方法。

第一种就是标准的SqlClient方法:

string server = "***.database.windows.net";
string database = "AdventureWorks2012";
string user = "***";
string password = "***";

string GetConnectionString()
{
    // Creates a connection string for the master database.
    SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();

    builder.DataSource = server;
    builder.InitialCatalog = database;
    builder.UserID = user;
    builder.Password = password;

    return builder.ToString();
}

[TestMethod]
public void TestConnection()
{
    // Connects to the database and pulls from employee table.
    using (SqlConnection conn = new SqlConnection(GetConnectionString()))
    {
        conn.Open();
        using (SqlCommand command = conn.CreateCommand())
        {
            command.CommandText = "select count(*) from Employee";
            int count = (int)command.ExecuteScalar();

            Assert.AreEqual(290, count);
        }
    }
}

第二种是通过OleDb。需要注意的是,微软官方声称并不支持通过OleDb连接SQL Azure,但是实际上是可以的,包括Analysis Service也在这么用,臆测只是测试覆盖还不够。

第三种是经典的ODBC,这个永远也不会过时,代码类似,省略两百字。

可见,SQL Azure帮助开发者省下安装部署以及运维的时间,从而开发者可以专注于逻辑,以及提前完成任务后的那份恬淡。

 



张 琪