技术开发 频道

三方法解决SQL Server与云端数据库连接

  有关sqlcmd的参数说明,感兴趣的读者可以参考MSDN:

  http://msdn.microsoft.com/en-us/library/ms162773.aspx

  (2)可以使用下面的sqlcmd命令行连接到SQL Azure数据库。

  Sqlcmd –U -P -S -D

  参数说明:

  Userlogin:登陆数据库的用户名,如sqladmin@unjikh4kim

  Servername:服务器名称,如unjikh4kim

  Passwords:密码

  Fully Qualified ServerName:服务器的全名,如unjikh4kim.database.windows.net

  database name:数据库名称,如TestDB

  执行示例命令行:

  sqlcmd -U sqladmin@ unjikh4kim -P pass@word -S unjikh4kim.database.windows.net -d TestDB

  执行完成后,连接上数据库,会返回1,否则返回错误信息。

  (3)连接上数据库后,可以使用如下的命令行:

  创建表的示例命令行:

  CREATE TABLE CloudTable

  (ColNumber1 int primary key clustered, ColNumber2 varchar(50), ColNumber3 float);

  显示系统信息的命令行:

  SELECT * FROM sys.tables

  不仅支持创建数据库、表,还可以执行插入、删除、查询语句,但是需要注意的是在第一和第二两种方法连接到SQL Azure数据库中,并不是所有的SQL 语句都被支持,还有一些不被推荐使用的方式尽量避免使用,感兴趣的读者可以参考:中文:http://msdn.microsoft.com/zh-cn/library/ms143729.aspx;英文:http://msdn.microsoft.com/en-us/library/ee336253.aspx

  使用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);

  }

  }

  }
0
相关文章