using System; using System.Collections.Generic; using System.Linq; using System.Text; //操作SQL數據庫必須引入此包 using System.Data.SqlClient; //使用DataSet類必須引入此包 using System.Data; namespace ConsoleApplication1 { class Program { private string sqlConnectionCommand = "server=localhost;database=testDB;uid=sa;pwd=sa";//"server=localhost;database=testDB;integrated security=SSPI";//Windows驗證方式 private string sqlSelectTable = "select id,name from table1"; private string sqlDelCommand = "Delete From table1 Where id = 1"; private string sqlUpdateCommand = "update table1 set name = '99' Where id = 2"; static void Main(string[] args) { Program p1 = new Program(); p1.testDBsetFun(); } public void doSqlSelect() { SqlConnection sqlConnection = new SqlConnection(sqlConnectionCommand); //如果初始化構造函數不包含連接數據庫信息,則可以用創建的對象的屬性關聯連接數據庫信息 //SqlConnection sqlConnection = new SqlConnection(); //sqlConnection.ConnectionString = sqlConnectionCommand; SqlCommand sqlCommand = new SqlCommand(sqlSelectTable, sqlConnection);//建立一個接受SQL語句並可以執行返回結果的對象 //如果初始化時沒包含要執行的SQL語句和關聯的數據庫連接則可通過創建的對象的屬性來關聯 //SqlCommand sqlCommand = new SqlCommand();//創建一個執行SQL語句類的對象 //sqlCommand.Connection = sqlConnection;//關聯連接數據庫對象 //sqlCommand.CommandText = sqlSelectTable1;//關聯執行的SQL語句 //在執行SQL語句前必須把連接打開 sqlConnection.Open(); //如果執行非查詢語句(更新,插入等)用SqlCommand類ExecuteNonQuery();方法來執行,返回一個int型 //sqlCommand.ExecuteNonQuery(); //執行查詢語句用SqlCommand類ExecuteReader();方法來執行。用SqlDataReader類對象接收執行的結果便於瀝遍 SqlDataReader sqlDataReader = sqlCommand.ExecuteReader(); //開始循環瀝遍 while (sqlDataReader.Read()) { int id = (int)sqlDataReader["id"];//(int)sqlDataReader[0];//也可以根據查詢結果列的序號0為第一列 string name = (string)sqlDataReader["name"];//(string)sqlDataReader["name"]; Console.WriteLine("ID = " + id + " , Name = " + name); } System.Console.WriteLine("Press any key to exit."); System.Console.ReadKey(); sqlDataReader.Close(); sqlCommand.Dispose(); sqlConnection.Close(); } void testDBsetFun() { SqlConnection sqlConnection = new SqlConnection(sqlConnectionCommand); SqlCommand sqlCommand = new SqlCommand(sqlSelectTable, sqlConnection); SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();//建立對虛擬表進行操作的對象 sqlDataAdapter.SelectCommand = sqlCommand;//把SqlDataAdapter關聯一個擁有查詢語句的sqlCommand對象 sqlConnection.Open(); DataSet dsDataSet = new DataSet();//創建虛擬表對象 sqlDataAdapter.Fill(dsDataSet, "Customers");//用SqlDataAdapter對象把剛關聯的查詢結果賦到虛擬表中,並賦一個指定表名"Customers"(任意起) sqlCommand.Dispose(); sqlConnection.Close(); dsDataSet.Tables["Customers"].Rows[0].Delete();//指明要在指定虛擬表中刪除的索引行,表名也可換成指定表儲存在dsDataSet中的索引值 dsDataSet.Tables["Customers"].AcceptChanges();//執行對指定虛擬表指定索引行刪除的動作(提交執行自加載此 dsDataSet 或上次調用 AcceptChanges() 以來對其進行的所有更改。) sqlDataAdapter.Update(dsDataSet, "Customers");//調用Update方法,以dsDataSet中指定表的數據更新數據庫對應表但是放在AcceptChanges()方法下則不執行 int a1 = dsDataSet.Tables[0].Rows.Count;//取得指定虛擬表的總行數 int a2 = dsDataSet.Tables["Customers"].Columns.Count;//取得指定虛擬表的總列數 int a3 = dsDataSet.Tables.Count;//取得指定虛擬表的總列數 string a4 = dsDataSet.Tables["Customers"].Columns[0].ToString();//取得指定虛擬表的索引為0列的列名(字段名) //取得指定虛擬表的指定索引行指定列的值 string val = dsDataSet.Tables["Customers"].Rows[1]["name"].ToString();//也可通過虛擬表中該列的索引來取值//string b = dsDataSet.Tables["Customers"].Rows[1][1].ToString(); Console.WriteLine("RowsCount = " + a1 + " , val = " + val); System.Console.WriteLine("Press any key to exit."); System.Console.ReadKey(); } } }