淺析C# ChangeCompanyName
在這一節中,我們將會看到如何寫一個執行了一些邏輯,但是卻沒有任何返回值和輸出參數的存儲過程。在這個例子里,我們將創建一個名為“C# ChangeCompanyName”的存儲過程,它用來修改Customers表中CompanyName字段的值。 這個存儲過程需要兩個參數 – CustomerID(需要更改公司名稱的客戶的ID)和CompanyName(新的公司名稱)。 “ChangeCompanyName”存儲過程完成后的代碼如下:
- 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());
- }
仔細看一下這個C# ChangeCompanyName()方法。 它是一個靜態方法并且沒有返回值(void)。 它需要兩個名為CustomerID和CompanyName的參數。 請注意這兩個參數的數據類型都是SqlString。 SqlString可以用來代替SQL Server中的nvarchar數據類型。 這個方法用了一個[SqlProcedure]屬性來修飾。 該屬性用于標記ChangeCompanyName()方法是一個SQL Server存儲過程。
在方法內我們創建了一個SqlConnection對象,并設置其連接字符串為“context connection = true”。 “上下文連接”可以讓你使用當前登錄到數據庫的用戶作為你的登錄數據庫的驗證信息。 本例中,C# ChangeCompanyName()方法將會轉換為存儲過程,然后保存到Northwind數據庫里。 所以在這里的“上下文連接”指的就是Northwind數據庫。 這樣你就不需要再寫任何關于登錄數據庫的驗證信息了。
接下來是打開數據庫連接。 然后通過設置SqlCommand對象的Connection和CommandText屬性,讓其執行更新操作。同時,我們還需要設置兩個參數。 這樣通過調用ExecuteNonQuery()方法就可以執行更新操作了。 再接下來就是關閉連接。
***,將ExecuteNonQuery()方法的返回值發送到客戶端。 當然你也可以不做這一步。現在我們來了解一下SqlContext類的使用。 SqlContext類用于在服務端和客戶端之間傳遞處理結果。本例使用了Send()方法發送一個字符串返回給調用者。
【編輯推薦】