程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> Visual C# 2005中使用數據命令執行Transact-SQL語句

Visual C# 2005中使用數據命令執行Transact-SQL語句

編輯:關於C#

欲使用數據命令將Transact-SQL語句傳送至SQL Server來執行,請將Transact-SQL語句賦給SqlCommand對象的CommandText屬性,並將SqlCommand對象的CommandType屬性設置成CommandType.Text(此為默認值)。

在此要提醒大家,當您使用CommandType屬性為Text的數據命令時,請先小心檢查客戶端傳送出來的信息,然後才能將這些信息傳遞至您的數據庫。惡意用戶會嘗試發送(插入)修改過或額外的SQL語句,以獲取未經授權的訪問權,甚至是破壞數據庫。在將用戶輸入傳輸到數據庫前,一定要確認信息是有效的。最好的做法是盡可能使用參數型查詢或存儲過程。

程序范例1

圖 6-4所示是CH6_DemoForm003.cs的執行畫面。它示范如何使用SqlCommand對象將Transact-SQL語句傳送至SQL Server來執行,並藉此取得“飛狐工作室”數據表的員工人數。

圖 6-4

相關程序代碼編寫於窗體的Load事件處理函數中,列示如下:

private void CH6_DemoForm003_Load(object sender, EventArgs e)
{
...
try
{
// 建立連接。
using (SqlConnection con =
new SqlConnection(connectStringBuilder.ConnectionString))
{
// 建立數據命令對象(亦即 SqlCommand 對象)。
SqlCommand foxCMD = new SqlCommand();
// 設置 SqlCommand 對象所要使用的連接。
foxCMD.Connection = con;
// 設置賦給 SqlCommand 對象的是 TransactSQL 語句。
foxCMD.CommandType = CommandType.Text;
// 指派所要執行的 TransactSQL 語句。
foxCMD.CommandText = "SELECT COUNT(*) FROM dbo.飛狐工作室";
// 打開連接。
con.Open();
// 執行數據命令並將所返回的單一值賦給變量 total。
Int32 total = (int)(foxCMD.ExecuteScalar());
lblInfo.Text = "飛狐工作室的員工人數是:" +
total.ToString();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "請注意",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}

程序范例2

圖 6-5所示是CH6_DemoForm004.cs的執行畫面,它示范如何使用SqlCommand對象將TransactSQL語句傳送至SQL Server來執行,並藉此取得“飛狐工作室”數據表的員工平均薪資。

圖 6-5

相關程序代碼編寫於窗體的Load事件處理函數中,列示如下:

private void CH6_DemoForm004_Load(object sender, EventArgs e)
{
...
try
{
// 建立連接。
using (SqlConnection con =
new SqlConnection(connectStringBuilder.ConnectionString))
{
// 建立數據命令對象(亦即 SqlCommand 對象)。
SqlCommand foxCMD =
new SqlCommand("SELECT AVG(目前薪資) FROM dbo.飛狐工作室");
// 設置 SqlCommand 對象所要使用的連接。
foxCMD.Connection = con;
// 打開連接。
con.Open();
// 執行數據命令並將所返回的單一值賦給變量 mAverage。
double mAverage = Convert.ToDouble(foxCMD.ExecuteScalar());
lblInfo.Text = "飛狐工作室的員工平均薪資是:" +
mAverage.ToString("$ NT # #,# #0.0000");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "請注意",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved