熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

C#ADO.NET操作數據代碼匯總

2022-06-13   來源: .NET編程 

  一.用SqlConnection連接SQL Server
加入命名空間
using SystemDataSqlClient;

  連接數據庫
SqlConnection myConnection = new SqlConnection();
myConnectionConnectionString = user id=sa;password=sinofindb;initial catalog=test;data source=;Connect Timeout=;
myConnectionOpen();

  改進(更通用)的方法
string MySqlConnection=user id=sa;password=sinofindb;Database =test;data source=;Connect Timeout=;
SqlConnection myConnection = new SqlConnection(MySqlConnection);
myConnectionOpen();

  二用OleDbConnection連接

  加入命名空間
using SystemDataOleDb;
 

  連接sql server
string MySqlConnection=Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=test;Integrated Security=SSPI;;

  SqlConnection myConnection = new SqlConnection(MySqlConnection);
myConnectionOpen();

  連接Access(可通過建立udl文件獲得字符串)
string MySqlConnection=Provider=MicrosoftJetOLEDB;Data Source=c:\dbmdb;

  Persist Security Info=False;

  連接Oracle(也可通過OracleConnection連接)
string MySqlConnection=Provider=MSDAORA;Data Source=db; user id=sa;password=sinofindb;

  三創建Command對象
 
.SqlCommand 構造函數
①初始化 SqlCommand 類的新實例public SqlCommand();

  SqlCommand myCommand = new SqlCommand();

  ②初始化具有查詢文本的 SqlCommand 類的新實例public SqlCommand(string);

  String mySelectQuery = SELECT * FROM mindata;
SqlCommand myCommand = new SqlCommand(mySelectQuery);
③初始化具有查詢文本和 SqlConnection 的SqlCommand類實例

  Public SqlCommand(string SqlConnection);

  String mySelectQuery = SELECT * FROM mindata;
string myConnectString = user id=sa;password=;database=test;server=mySQLServer;
SqlConnection myConnection = new SqlConnection(myConnectString);
SqlCommand myCommand = new SqlCommand(mySelectQuerymyConnection);
 

  ④初始化具有查詢文本SqlConnection 和 Transaction 的 SqlCommand 類實例

  public SqlCommand(string SqlConnection SqlTransaction);

  SqlTransaction myTrans = myConnectionBeginTransaction();
String mySelectQuery = SELECT * FROM mindata;
string myConnectString = user id=sa;password=;database=test;server=mySQLServer;
SqlConnection myConnection = new SqlConnection(myConnectString);
SqlCommand myCommand = new SqlCommand(mySelectQuerymyConnection myTrans);
 

  建立SqlCommand與SqlConnection的關聯
myCommandConnection = myConnection;

  或者SqlCommand myCommand = myConnectionCreateCommand;

  .設置SqlCommand的查詢文本
myCommandCommandText = SELECT * FROM mindata;

  或者第種構造SqlCommand myCommand = new SqlCommand(mySelectQuery);

  給SqlCommand對象提供兩個查詢字符串每個查詢字符串訪問不同的表返回不同的結果集

  兩個查詢語句用分號分隔

   執行命令
ExecuteReader
 返回一行或多行
 
ExecuteNonQuery
 對 Connection 執行 TransactSQL 語句並返回受影響的行數(int)
 
ExecuteScalar
 返回單個值(如一個聚合值)返回結果集中第一行的第一列忽略額外的列或行
 
ExecuteXmlReader
 將 CommandText 發送到 Connection 並生成一個 XmlReader 對象

  SqlDataReader myReader = myCommandExecuteReader();

  或SqlDataReader myReader = myCommandExecuteReader(CommandBehaviorCloseConnection);

  while(myReaderRead()) //循環讀取數據
   {
      ConsoleWriteLine(myReaderGetString());// 獲取指定列的字符串形式的值
      ConsoleWriteLine(myReader GetValue());// 獲取以本機格式表示的指定列的值
    }

  CommandText = select count(*) as NumberOfRegions from region;
Int count = (int) myCommandExecuteScalar();

  關於OleDbCommand對象的使用

  四.DataReader的使用
.遍歷結果集
while (myReaderRead())
  ConsoleWriteLine(\t{}\t{} myReaderGetInt() myReaderGetString());
myReaderClose();
 

  .使用序數索引器
while (myReaderRead())
  ConsoleWriteLine(\t{}\t{} myReader[]ToString() myReader[]ToString());
myReaderClose();

  .使用列名索引器
while (myReaderRead())
  ConsoleWriteLine(\t{}\t{} myReader[code]ToString() myReader[name]ToString());
myReaderClose();

  使用類型訪問器
public char GetChar(int i); 獲取指定列的單個字符串形式的值
public DateTime GetDateTime(int i); 獲取指定列的 DateTime 對象形式的值
public short GetInt(int i); 獲取指定列的 位有符號整數形式的[C#]
public string GetString(int i); 獲取指定列的字符串形式的值

  .得到列信息
myReaderFieldCount     獲取當前行中的列數
myReaderGetFieldType(序號)   獲取是對象的數據類型的 Type
myReaderGetDataTypeName(序號)  獲取源數據類型的名稱
myReaderGetName(序號)     獲取指定列的名稱
myReaderGetOrdinal(序號)   在給定列名稱

  的情況下獲取列序號

  得到數據表的信息
myReaderGetSchemaTable()   返回一個 DataTable

  .操作多個結果集
myReaderNextResult()     使數據讀取器前進到下一個結果集
do
{
  while (myReaderRead())
  ConsoleWriteLine(\t{}\t{} myReaderGetInt() myReaderGetString());
}
while(myReaderNextResult());

  五.DataAdapter
 
創建SqlDataAdapter
初始化 SqlDataAdapter 類的新實例
public SqlDataAdapter();
將指定的 SqlCommand 作為SelectCommand 屬性初始化 SqlDataAdapter 類的新實例
public SqlDataAdapter(SqlCommand);
用 selectcommand字符串 和 SqlConnection對象初始化SqlDataAdapter 類的新實例
public SqlDataAdapter(string SqlConnection);
用 selectcommand字符串 和 一個連接字符串 初始化SqlDataAdapter 類的新實例
public SqlDataAdapter(string string);

  .DataAdapter和SqlConnectionSqlCommand建立關聯
  .DataAdapter在構造參數時建立
  .SqlDataAdapter adapter = new SqlDataAdapter();
     adapterSelectCommand = new SqlCommand(query conn);

  .DataAdapterFill()方法
在 DataSet 中添加或刷新行以匹配使用 DataSet 名稱的數據源中的行並創建一個名為Table的 DataTable
public override int Fill(DataSet);
在 DataSet 中添加或刷新行以匹配使用 DataSet 和 DataTable 名稱的數據源中的行
 public int Fill(DataSet string);
在 DataSet 的指定范圍中添加或刷新行以匹配使用 DataSet 和 DataTable 名稱的數據源中的行

  public int Fill(DataSet int int string);
在 DataTable 中添加或刷新行以匹配使用 DataTable 名稱的數據源中的行
 public int Fill(DataTable);
在 DataTable 中添加或刷新行以匹配使用指定 DataTable 和 IDataReader 名稱的數據源中的行
 protected virtual int Fill(DataTable IDataReader);

  在 DataTable 中添加或刷新行以匹配使用 DataTable 名稱指定的 SQL SELECT 語句和 CommandBehavior 的數據源中的行
 protected virtual int Fill(DataTable IDbCommand CommandBehavior);
 

  六.DataTable 類
七.DataColumn 類
八.DataRow 類
 
九.DataSet 類
.創建DataSet 對象
初始化 DataSet 類的新實例
public DataSet();
 
用給定名稱初始化 DataSet 類的新實例
public DataSet(string);
 

  .用DataAdapter填充DataSet
   DataSet myds=new DataSet();
adapterfill(myds)
adapterfill(myds表名);  用一個表去填充DataSet

  十 DataTableCollection 類
   表示 DataSet 的表的集合

  DataTableCollection dtc = dsTables;
DataTable table = dtc[表名];
String strExpr = id > ;
String strSort = name DESC;
DataRow[] foundRows = customerTableSelect( strExpr strSort);

  進行動態的篩選和排序
DataTableSelect() 方法   獲取 DataRow 對象的數組

  ①獲取所有 DataRow 對象的數組
public DataRow[] Select();

  ②按主鍵順序(如沒有主鍵則按照添加順序)獲取與篩選條件相匹配的所有 DataRow 對象的數組
public DataRow[] Select(string);
③獲取按照指定的排序順序且與篩選條件相匹配的所有 DataRow 對象的數組

  public DataRow[] Select(string string);
④獲取與排序順序中的篩選器以及指定的狀態相匹配的所有 DataRow 對象的數組

  public DataRow[] Select(string string DataViewRowState);

  十一DataView 類 是DataTable內容的動態視圖
.  創建對象
初始化 DataView 類的新實例

  public DataView();

  用指定的 DataTable 初始化 DataView 類的新實例

  public DataView(DataTable);

  用指定的 DataTableRowFilterSort 和 DataViewRowState 初始化 DataView 類的新實例

  public DataView(DataTable string string DataViewRowState);

  DataView myview = new DataView(dsTables[Suppliers] id > name DESC
DataViewRowStateCurrentRows);

   得到DataView的行數據
   foreach (DataRowView myrowview in myview)
   {
     for (int i = ; i < myviewTableColumnsCount; i++)
        ConsoleWrite(myrowview [i] + \t);
     ConsoleWriteLine();
   }


From:http://tw.wingwit.com/Article/program/net/201311/11871.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.