添加完后你就会发现,实际上这是创建了一个已经导入了需要用到的命名空间的类。 using System; using System.Data; using System.Data.SqlClient; using System.Data.SqlTypes; using Microsoft.SqlServer.Server; 注意一下加粗显示的命名空间(译者注:后两个using)。 System.Data.SqlTypes命名空间包含了很多不同的类型,它们可以用来代替SQL Server的数据类型。 Microsoft.SqlServer.Server命名空间下的类负责SQL Server的CLR集成。
没有返回值的存储过程 在这一节中,我们将会看到如何写一个执行了一些逻辑,但是却没有任何返回值和输出参数的存储过程。 在这个例子里,我们将创建一个名为“ChangeCompanyName”的存储过程,它用来修改Customers表中CompanyName字段的值。 这个存储过程需要两个参数 – CustomerID(需要更改公司名称的客户的ID)和CompanyName(新的公司名称)。 “ChangeCompanyName”存储过程完成后的代码如下: [SqlProcedure] public static void ChangeCompanyName (SqlString CustomerID, SqlString CompanyName) { SqlConnection cnn = new SqlConnection ("context connection=true"); cnn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = cnn; cmd.CommandText = "update customers set companyname=@p1 where customerid=@p2"; SqlParameter p1 = new SqlParameter("@p1", CompanyName); SqlParameter p2 = new SqlParameter("@p2", CustomerID); cmd.Parameters.Add(p1); cmd.Parameters.Add(p2); int i=cmd.ExecuteNonQuery(); cnn.Close(); SqlContext.Pipe.Send(i.ToString()); } 仔细看一下这个ChangeCompanyName()方法。 它是一个静态方法并且没有返回值(void)。 它需要两个名为CustomerID和CompanyName的参数。 请注意这两个参数的数据类型都是SqlString。 SqlString可以用来代替SQL Server中的nvarchar数据类型。 这个方法用了一个[SqlProcedure]属性来修饰。 该属性用于标记ChangeCompanyName()方法是一个SQL Server存储过程。