C#中牽涉到資料庫的編程時,新手總是感到迷惘,其實,你按照下面我的方法就可以輕鬆串連資料庫並綁定欄位到你想綁定的TextBox或者Datagrid。好了,不廢話了,開始操作:
初始設定 首先,我們需在應用系統中安裝SQL Server 2000,Microsoft OLE DB Provider for SQL Server (SQL OLE D也會同時被自動安裝,接著用SQL Server的Enterprise Manager建立一個叫wjjdb(wjj是我的名字,你可以根據你的需要改成自己想要的資料庫名稱)的資料庫,並建立一名為address的資料表,其含name、email、age和address四個欄位。
開啟VS開發環境中的視圖選單項中的伺服器總管,該管理器可管理SQL Server及其他各種OLE DB的資料庫連接,並可以管理其中的資料。接著我們添加一個新的資料連線,串連屬性選擇Microsoft OLE DB Provider for SQL server,然後選好伺服器及資料庫wjjdb,測試連接成功後按確定。使用該工具可又快又准地產生需要的資料庫連接字串。 串連資料庫 建立一個WEB.NET項目或WinForm.NET應用程式,因為二者的資料庫存取程式是相同的。我們以WinForm.NET應用程式為例,將伺服器總管中的資料連線拖至建立的Web Form上即可,這時自動產生了一個連接字串如下: this.sqlConnection1.ConnectionString = "data source=WHOAMI; initial catalog=wjjdb; integrated security=SSPI; persist security info=False; workstation id=WHOAMI; packet size=4096"; 其中WHOAMI為筆者的伺服器名。 選取工具箱中的SqlDataAdapter並拖至該Web Form,提示時選取wjjdb的資料連線,選擇使用SQL語句訪問資料庫,產生SQL語句時只填入SELECTFROM ADDRESS,確認完成即可。程式產生代碼如下:
protected System.Data.SqlClient.SqlDataAdapter sqlDataAdapter1; //存取資料庫的主要類
protected System.Data.SqlClient.SqlCommand sqlSelectCommand1; //SQL語句處理的類
protected System.Data.SqlClient.SqlConnection sqlConnection1; //串連資料庫的類
在InitializeComponent()中有如下聲明:
this.sqlConnection1 = new System.Data.SqlClient.SqlConnection();
this.sqlDataAdapter1 = new System.Data.SqlClient.SqlDataAdapter();
this.sqlSelectCommand1 = new System.Data.SqlClient.SqlCommand();
this.sqlDataAdapter1.SelectCommand = this.sqlSelectCommand1;
this.sqlSelectCommand1.CommandText = "SELECT name, email, age, address FROM address";
this.sqlSelectCommand1.Connection = this.sqlConnection1;
為使Table中資料能在Web Form中顯示,加入一個DataGrid控制項至Web Form上,並在Page_Init中加入如下語句:
sqlConnection1.Open(); //開啟資料庫連接
DataSet objDataset; //建立一個放資料的DataSet
DataSet objDataset=new DataSet();
sqlDataAdapter1.Fill(objDataset, "address"); //將資料填入
DataSet DataGrid1.DataSource=objDataset.Tables["address"].DefaultView; //關聯DataSet和DataGrid
DataGrid1.DataBind(); //綁定資料
sqlConnection1.Close(); //關閉資料庫連接
編譯執行後Web Form已可將資料庫中資料顯示在DataGrid中了。
增加資料 :若想增加資料庫資料時,我們只需在Web Form上新增對應欄位數量個數的TextBox,並新增一個按鍵,接著為該按鍵增加Click事件,具體代碼如下:
sqlInsertCommand1.Parameters["@name"].Value=TextBox1.Text; //將TextBox賦值給對應參數 sqlInsertCommand1.Parameters["@email"].Value=TextBox2.Text;
sqlInsertCommand1.Parameters["@age"].Value=TextBox3.Text;
sqlInsertCommand1.Parameters["@address"].Value=TextBox4.Text;
sqlInsertCommand1.Connection.Open(); //開啟串連
sqlInsertCommand1.ExecuteNonQuery(); //執行Insert語句
sqlInsertCommand1.Connection.Close(); //關閉串連
sqlConnection1.Open(); DataSet objDataset; //下面程式段更新DataGrid
DataGrid objDataset=new DataSet();
sqlDataAdapter1.Fill(objDataset, "address");
DataGrid1.DataSource=objDataset.Tables["address"].DefaultView;
DataGrid1.DataBind();
執行這段程式時,只需在TextBox中填入要添加的記錄欄位的值,然後按該按鍵即可執行添加功能。
刪除資料 :若想刪除資料庫資料時,我們則需在Web Form上新增一個TextBox5及一個按鍵,為該按鍵增加如下代碼:
SqlCommand sqlDeleteCommand1 = new System.Data.SqlClient.SqlCommand(); //聲明Sql Command類對象 this.sqlDataAdapter1.DeleteCommand = sqlDeleteCommand1;
sqlDeleteCommand1.CommandText="DELETE FROM ADDRESS WHERE NAME='"+TextBox5.Text+"'"; //SQL語句 sqlDeleteCommand1.Connection = this.sqlConnection1; //聲明使用的資料連線
sqlDeleteCommand1.Connection.Open();
sqlDeleteCommand1.ExecuteNonQuery(); //執行該SQL語句
sqlDeleteCommand1.Connection.Close();
執行這段程式時,只需在TextBox5中填入要刪除的記錄name欄位的值,然後按該按鍵即可執行刪除功能。 更新操作原理都類同,具體開發中可以有許多技巧豐富完善上述程式,如增加錯誤處理等,這裡限於篇幅不一一敘述了。 綜上可知,充分利用Visual Studio.NET的開發環境來簡化程式設計對提高編程效率和品質極有好處。 上述程式均用C#開發,在中文Windows XP(我習慣用XP系統,但要注意,XP系統下不能裝SQL2000企業版,只能安裝個人版,但功能上我認為沒有什麼限制)、SQL Server 2000、Visual Studio.NET中文Beta 2環境下,編譯並正常運行,中文顯示正常。