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

C#操作Access數據庫的例子

2013-11-13 10:07:52  來源: .NET編程 

  添加

  using   System;

  using   SystemData;

  using   SystemDataOleDb;

  namespace   ADONETWriteQuery

  {

  /**////   <summary>

  ///   Summary   description   for   Class

  ///   </summary>

  class   Class

  {

  static   void   Main(string[]   args)

  {

  string   strDSN   =   Provider=MicrosoftJetOLEDB;Data

  Source=c:\\mcTestMDB;

  string   strSQL   =   INSERT   INTO   Developer(Name   Address   )   VALUES(

  NewName   NewAddress)   ;

  //   create   Objects   of   ADOConnection   and   ADOCommand

  OleDbConnection   myConn   =   new   OleDbConnection(strDSN);

  OleDbCommand   myCmd   =   new   OleDbCommand(   strSQL   myConn   );

  try

  {

  myConnOpen();

  myCmdExecuteNonQuery();

  }

  catch   (Exception   e)

  {

  ConsoleWriteLine(Oooops   I   did   it   again:\n{}   eMessage);

  }

  finally

  {

  myConnClose();

  }

  }

  }

  }

  在具體講操作前我認為有必要先認識一下下面的兩個類

  SystemDataOleDbOleDbDataAdapter

  SystemDataOleDbOleDbDataReader

  SystemDataOleDbOleDbDataAdapter可以直接和DataSet聯系並操作數據源的它的功能相對強大一些因此也比較耗系統資源!

  SystemDataOleDbOleDbDataReader則有些類似於ADO中的哪個只讀向前的記錄集它最常用在只需要依次讀取並顯示數據的時候相比SystemDataOleDbOleDbDataAdapter來說他耗用的系統資源要小!其實OleDbDataReader能實現的功能OleDbDataAdapter都可以實現不過從資源使用率的角度考慮我們應該盡量使用前者!但有些功能卻是必須使用OleDbDataAdapter才可以實現的!

  * SELECT操作!

  下面是我的自己在寫測試程序的時候用到了先列出來看看OleDbDataReader和OleDbDataAdapter是如何操作從數據庫中選擇記錄的

  //通過ID得到當前留言詳細內容通過STRING類型參數

  public Notebook getNoteFromID(string noteid)

  {

  Notebook tempnote=new Notebook(); //定義返回值

  try

  {

  OleDbConnection conn = getConn(); //getConn():得到連接對象

  string strCom = Select * from notes where id= + noteid ;

  OleDbCommand myCommand =new OleDbCommand(strComconn);

  connOpen();

  OleDbDataReader reader;

  reader =myCommandExecuteReader() ; //執行command並得到相應的DataReader

  //下面把得到的值賦給tempnote對象

  if(readerRead())

  {

  tempnoteid=(int)reader[id];

  tempnotetitle=reader[title]ToString();

  ntent=reader[content]ToString();

  tempnoteauthor=reader[author]ToString();

  tempnoteemail=reader[email]ToString();

  tempnotehttp=reader[http]ToString();

  tempnotepic=reader[pic]ToString();

  tempnotehits=(int)reader[hits];

  tempnoteposttime=(DateTime)reader[posttime];

  }

  else //如沒有該記錄則拋出一個錯誤!

  {

  throw(new Exception(當前沒有該記錄!));

  }

  readerClose();

  connClose();

  }

  catch(Exception e)

  {

  //throw(new Exception(數據庫出錯: + eMessage)) ;

  }

  return(tempnote); //返回Databook對象

  }

  上面的程序就是通過OleDbDataReader來得到特定的記錄的!其中用到的語句我單獨寫到下面

  OleDbConnection conn = getConn(); //getConn():得到連接對象

  string strCom = Select * from notes where id= + noteid ; //SQL語句

  OleDbCommand myCommand =new OleDbCommand(strComconn); //建立OleDbCommand對象

  connOpen(); //注意我在前面說的Open語句在這裡使用到了!

  OleDbDataReader reader;

  reader =myCommandExecuteReader() ; //執行command並得到相應的結果

  我在每句話後都加入了說明其中OleDbConnection conn = getConn();就是通過我前面提到的getConn函數來得到數據庫連接的其他語句沒有什麼好說的都很簡單就不多說了!

  我再列一個通過OleDbDataAdapter來得到記錄的例程

  //Getlist():得到當前需要的留言列表

  public DataView getNoteList()

  {

  DataView dataview;

  SystemDataDataSet mydataset; //定義DataSet

  try

  {

  OleDbConnection conn = getConn(); //getConn():得到連接對象

  OleDbDataAdapter adapter = new OleDbDataAdapter();

  string sqlstr=select * from notes order by posttime desc;

  mydataset= new SystemDataDataSet();

  adapterSelectCommand = new OleDbCommand(sqlstr conn);

  adapterFill(mydatasetnotes);

  connClose();

  }

  catch(Exception e)

  {

  throw(new Exception(數據庫出錯: + eMessage)) ;

  }

  dataview = new DataView(mydatasetTables[notes]);

  return(dataview);

  }

  這個程序或許有些復雜同樣的我還是先把那些關鍵語句列出並說明

  OleDbConnection conn = getConn(); //通過函數getConn()得到連接對象

  OleDbDataAdapter adapter = new OleDbDataAdapter(); //實例化OleDbDataAdapter對象

  string sqlstr=select * from notes order by posttime desc; //SQL語句

  mydataset= new SystemDataDataSet(); //由於OleDbDataAdapter需要和DataSet結合使用所以在這裡定義了DataSet對象其實說OleDbDataAdapter復雜其實就是因為DataSet的緣故DataSet有些類似於ADO中的recordset 對象但功能遠遠超過了它而且它和數據庫是斷開的並能存放多個記錄集!

  adapterSelectCommand = new OleDbCommand(sqlstr conn); //設置命令為SelectCommand類型的

  adapterFill(mydatasetnotes); //執行並將結果添加到mydataset中的notes表中

  connClose(); //關閉連接!

  在對上面的程序加一些補充說明由於getNoteLista是得到一系列記錄並通過控件DataGrid來做分頁顯示的所以我返回的是一個DataView類型的對象!


From:http://tw.wingwit.com/Article/program/net/201311/12651.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.