C#數據庫開發相關技巧匯總
C#數據庫開發一.用SqlConnection連接SQLServer
1.加入命名空間
- usingSystem.Data.SqlClient;
2.連接數據庫
- SqlConnectionmyConnection=newSqlConnection();
- myConnection.ConnectionString="userid=sa;password=sinofindb;initialcatalog=test;datasource=127.0.0.1;ConnectTimeout=30";
- myConnection.Open();
改進(更通用)的方法:
- stringMySqlConnection="userid=sa;password=sinofindb;Database=test;datasource=127.0.0.1;ConnectTimeout=30";
- SqlConnectionmyConnection=newSqlConnection(MySqlConnection);
- myConnection.Open();
C#數據庫開發二。用OleDbConnection連接
1.加入命名空間
usingSystem.Data.OleDb;
2.連接sqlserver
- stringMySqlConnection="Provider=SQLOLEDB;DataSource=localhost;InitialCatalog=test;IntegratedSecurity=SSPI;";
- SqlConnectionmyConnection=newSqlConnection(MySqlConnection);
- myConnection.Open();
3.連接Access(可通過建立.udl文件獲得字符串)
stringMySqlConnection="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=c:\db2000.mdb;
PersistSecurityInfo=False;
4.連接Oracle(也可通過OracleConnection連接)
stringMySqlConnection="Provider=MSDAORA;DataSource=db;userid=sa;password=sinofindb";
C#數據庫開發三.創建Command對象
1.SqlCommand構造函數
①初始化SqlCommand類的新實例。publicSqlCommand();
SqlCommandmyCommand=newSqlCommand();
②初始化具有查詢文本的SqlCommand類的新實例。publicSqlCommand(string);
- StringmySelectQuery="SELECT*FROMmindata";
- SqlCommandmyCommand=newSqlCommand(mySelectQuery);
③初始化具有查詢文本和SqlConnection的SqlCommand類實例。
- PublicSqlCommand(string,SqlConnection); StringmySelectQuery="SELECT*FROMmindata"; stringmyConnectString="userid=sa;password=;database=test;server=mySQLServer"; SqlConnectionmyConnection=newSqlConnection(myConnectString); SqlCommandmyCommand=newSqlCommand(mySelectQuery,myConnection);
④初始化具有查詢文本、SqlConnection和Transaction的SqlCommand類實例。
- publicSqlCommand(string,SqlConnection,SqlTransaction);
- SqlTransactionmyTrans=myConnection.BeginTransaction();
- StringmySelectQuery="SELECT*FROMmindata";
- stringmyConnectString="userid=sa;password=;database=test;server=mySQLServer";
- SqlConnectionmyConnection=newSqlConnection(myConnectString);
- SqlCommandmyCommand=newSqlCommand(mySelectQuery,myConnection,myTrans);
2.建立SqlCommand與SqlConnection的關聯。
myCommand.Connection=myConnection;
或者:SqlCommandmyCommand=myConnection.CreateCommand;
3.設置SqlCommand的查詢文本。
myCommand.CommandText="SELECT*FROMmindata";
或者第2種構造:SqlCommandmyCommand=newSqlCommand(mySelectQuery);
給SqlCommand對象提供兩個查詢字符串,每個查詢字符串訪問不同的表,返回不同的結果集。
兩個查詢語句用分號分隔。
4.執行命令。
ExecuteReader
返回一行或多行
ExecuteNonQuery
對Connection執行Transact-SQL語句并返回受影響的行數(int)
ExecuteScalar
返回單個值(如一個聚合值).返回結果集中第一行的第一列。忽略額外的列或行
ExecuteXmlReader
將CommandText發送到Connection并生成一個XmlReader對象。
- SqlDataReadermyReader=myCommand.ExecuteReader();
- 或SqlDataReadermyReader=myCommand.ExecuteReader(CommandBehavior.CloseConnection);
- while(myReader.Read())//循環讀取數據
- {
- Console.WriteLine(myReader.GetString(0));//獲取指定列的字符串形式的值
- Console.WriteLine(myReader.Getvalue(1));//獲取以本機格式表示的指定列的值
- }
- CommandText="selectcount(*)asNumberOfRegionsfromregion";
- Intcount=(int)myCommand.ExecuteScalar();
關于OleDbCommand對象的使用。
C#數據庫開發四.DataReader的使用
1.遍歷結果集
while(myReader.Read())
Console.WriteLine("\t{0}\t{1}",myReader.GetInt32(0),myReader.GetString(1));
myReader.Close();
2.使用序數索引器。
- while(myReader.Read())
- Console.WriteLine("\t{0}\t{1}",myReader[0].ToString(),myReader[1].ToString());
- myReader.Close();
3.使用列名索引器。
- while(myReader.Read())
- Console.WriteLine("\t{0}\t{1}",myReader["code].ToString(),myReader["name"].ToString());
- myReader.Close();
4.使用類型訪問器。
publiccharGetChar(inti);獲取指定列的單個字符串形式的值
publicDateTimeGetDateTime(inti);獲取指定列的DateTime對象形式的值
publicshortGetInt16(inti);獲取指定列的16位有符號整數形式的[C#]
publicstringGetString(inti);獲取指定列的字符串形式的值
5.得到列信息。
myReader.FieldCount獲取當前行中的列數
myReader.GetFieldType(序號)獲取是對象的數據類型的Type
myReader.GetDataTypeName(序號)獲取源數據類型的名稱
myReader.GetName(序號)獲取指定列的名稱
myReader.GetOrdinal(序號)在給定列名稱的情況下獲取列序號
6.得到數據表的信息。
myReader.GetSchemaTable()返回一個DataTable
7.操作多個結果集。
- myReader.NextResult()使數據讀取器前進到下一個結果集
- do
- {
- while(myReader.Read())
- Console.WriteLine("\t{0}\t{1}",myReader.GetInt32(0),myReader.GetString(1));
- }
- while(myReader.NextResult());
C#數據庫開發五.DataAdapter
1.創建SqlDataAdapter
初始化SqlDataAdapter類的新實例。
publicSqlDataAdapter();
將指定的SqlCommand作為SelectCommand屬性,初始化SqlDataAdapter類的新實例。
publicSqlDataAdapter(SqlCommand);
用selectcommand字符串和SqlConnection對象初始化SqlDataAdapter類的新實例。
publicSqlDataAdapter(string,SqlConnection);
用selectcommand字符串和一個連接字符串初始化SqlDataAdapter類的新實例。
publicSqlDataAdapter(string,string);
2.DataAdapter和SqlConnection,SqlCommand建立關聯。
1.DataAdapter在構造參數時建立
2.SqlDataAdapteradapter=newSqlDataAdapter();
adapter.SelectCommand=newSqlCommand(query,conn);
3.DataAdapter.Fill()方法。
在DataSet中添加或刷新行以匹配使用DataSet名稱的數據源中的行,并創建一個名為“Table”的DataTable。
publicoverrideintFill(DataSet);
在DataSet中添加或刷新行以匹配使用DataSet和DataTable名稱的數據源中的行。
publicintFill(DataSet,string);
在DataSet的指定范圍中添加或刷新行以匹配使用DataSet和DataTable名稱的數據源中的行。
publicintFill(DataSet,int,int,string);
在DataTable中添加或刷新行以匹配使用DataTable名稱的數據源中的行。
publicintFill(DataTable);
在DataTable中添加或刷新行以匹配使用指定DataTable和IDataReader名稱的數據源中的行。
protectedvirtualintFill(DataTable,IDataReader);
在DataTable中添加或刷新行以匹配使用DataTable名稱、指定的SQLSELECT語句和CommandBehavior的數據源中的行。
protectedvirtualintFill(DataTable,IDbCommand,CommandBehavior);
C#數據庫開發六.DataTable類
七.DataColumn類
八.DataRow類
九.DataSet類
1.創建DataSet對象
初始化DataSet類的新實例。
publicDataSet();
用給定名稱初始化DataSet類的新實例。
publicDataSet(string);
2.用DataAdapter填充DataSet
DataSetmyds=newDataSet();
adapter.fill(myds)
adapter.fill(myds,”表名”);用一個表去填充DataSet.
十.DataTableCollection類。表示DataSet的表的集合。
DataTableCollectiondtc=ds.Tables;
DataTabletable=dtc[“表名”];
StringstrExpr="id>5";
StringstrSort="nameDESC";
DataRow[]foundRows=customerTable.Select(strExpr,strSort,);
進行動態的篩選和排序。
DataTable.Select()方法:獲取DataRow對象的數組,
①獲取所有DataRow對象的數組。
publicDataRow[]Select();
②按主鍵順序(如沒有主鍵,則按照添加順序),獲取與篩選條件相匹配的所有DataRow對象的數組。
publicDataRow[]Select(string);
③獲取按照指定的排序順序且與篩選條件相匹配的所有DataRow對象的數組。
publicDataRow[]Select(string,string);
④獲取與排序順序中的篩選器以及指定的狀態相匹配的所有DataRow對象的數組。
publicDataRow[]Select(string,string,DataViewRowState);
十一。DataView類:是DataTable內容的動態視圖。
1.創建對象
初始化DataView類的新實例。
publicDataView();
用指定的DataTable初始化DataView類的新實例。
publicDataView(DataTable);
用指定的DataTable、RowFilter、Sort和DataViewRowState初始化DataView類的新實例。
- publicDataView(DataTable,string,string,DataViewRowState);
- DataViewmyview=newDataView(ds.Tables["Suppliers"],
- "id>5",
- "nameDESC",
- DataViewRowState.CurrentRows);
2.得到DataView的行數據。
- foreach(DataRowViewmyrowviewinmyview)
- {
- for(inti=0;i
- Console.Write(myrowview+"\t");
- Console.WriteLine();
- }
【編輯推薦】