使用系統。Data . OleDb//首先引用命名空間
命名空間DataReader1
{
公共分部類表單1:表單
{
公共表單1()
{
initialize component();
}
/*特別說明:DataReader是逐行讀取數據的,DataReader表實際上是內存中的數據表,類似於DataSet */
私有void Form1_Load(對象發送方,EventArgs e)
{
string connStr,selectCmd//定義兩個字符串變量,分別存儲連接字符和SQL命令代碼。
connStr ="Provider=Microsoft。Jet . OLEDB.4.0數據源= score db . MDB ";//為將用於連接數據庫的連接詞賦值。
selectCmd = " SELECT * FROM SCORE//為要執行的SQL語句賦值
OleDbConnection連接;//定義連接類的對象
OleDbCommand cmd//創建命令類的對象
OleDbDataReader閱讀器;//建立壹個讀取數據的對象OleDbDataReader類。
conn = new oledb connection(connStr);//創建壹個新的連接對象,相當於開門的準備用鑰匙,而connStr相當於鑰匙。
conn . Open();//打開連接,數據庫的門就打開了。
cmd = new OleDbCommand(selectCmd,conn);//將“Connect”與SQL命令相關聯,從而將要執行的SQL語句與數據庫相關聯。
reader = cmd。ExecuteReader();/*執行SQL語句,根據返回的查詢結果(壹個數據表)創建OleDbDataReader對象。
並將它賦給最初定義用來存儲對象的變量。這時,reader就相當於壹張桌子。
而此時只能直接使用第壹行(也就是表頭那行)的數據*/
for(I = 0;我& lt讀者。FieldCountI++)/*當I小於reader表中的列數時(fieldcount的值從零開始)。
這時,執行代碼*/
{
txtShow。Text +=閱讀器。GetName(I)+" \ t ";//獲取第I列的列名(從零開始)。
}
txtShow。text+= " \ n \ n ";
而(讀者。Read())/*首先將reader表的數據行下移壹行,這樣表頭下面的行就可以直接使用了,就這樣。
繼續逐行向下移動,直到讀取器表的最後壹行用完*/
{
for(I = 0;我& lt讀者。FieldCounti++)//reader.fieldcount的值等於reader表中的列數,但下表在調用列時從零開始計數。
{
txtShow。text+= reader[I]+" \ t ";//reader[i]用於獲取當前可以直接讀取數據的行的第I列的值(I從零開始)。
}
txtShow。text+= " \ n ";
}
讀者。close();//關閉DataReader對象並釋放資源。DataReader表實際上是內存中的數據表。
conn . Close();//斷開數據庫連接。
}
}
}
摘要:您應該為三個類創建對象:OleDbConnection、OleDbCommand和OleDbDataReader,因為這三個類必須組合在壹起才能訪問數據庫。
另壹種方法:使用DataSet和DataBaseAdapter來訪問數據表中的數據。
string connStr,selectCmd
connStr = "Provider=Microsoft。Jet . OLEDB.4.0數據源= score db . MDB ";
selectCmd = " Select * From SCORE
OleDbConnection連接;
OleDbDataAdapter myAdapter
數據集my DataSet = new DataSet();//創建沒有表的空DataSet對象。
conn = new oledb connection(connStr);
my adapter = new oledb dataadapter(select cmd,conn);
我的適配器。Fill(myDataSet,“成績單”);
數據表mydatatable = mydataset。表格[“抄本”];/*若要訪問表中的某些內容,應首先將數據集中的表分配給DataTable myDataTable*/
for(k = 0;k & ltmyDataTable。列數;k++)//my datatable . columns . count是數據表中的列數。
{
txtShow。Text += myDataTable。列[k]。column name+" \ t ";
}
txtShow。text+= " \ n ";
for(I = 0;我& ltmyDataTable。行數。計數;i++)
{
for(j = 0;j & ltmyDataTable。列數;j++)//我的數據表的列數。列。從1開始計數。
{
txtShow。Text += myDataTable。rows[I][j]+" \ t ";//相當於壹個二維數組
}
txtShow。text+= " \ n ";
其次,使用SQL的DataReader讀取數據庫的信息。
使用系統。Data . SqlClient//首先引用命名空間
//開始從數據庫獲取密碼。
string conString = @ " server = localhost;數據庫=數據庫名稱;綜合安全= SSPI”;
string selectCmd = "SELECT ID,PassWord FROM userInfo ";
SqlConnection con = new SqlConnection(conString);
SqlCommand cmd
SqlDataReader讀取器;
con . Open();
cmd = new SqlCommand(selectCmd,con);
reader = cmd。ExecuteReader();
而(讀者。Read())
{
ID =讀者。GetString(0);
密碼=閱讀器。GetString(1);
}
讀者。close();
con . Close();
//獲取密碼完成。
總結:為SqlConnection、SqlCommand和SqlDataReader創建對象,因為這三個類是需要的!
第三,用DataSet訪問數據庫。
使用系統。Data . OleDb首先引用命名空間。
string connStr,selectCmd//定義兩個字符串變量,分別存儲連接字符和SQL命令代碼。
數據集my DataSet = new DataSet();//創建壹個新的數據集,將數據表存儲在內存中。
OleDbConnection連接;//定義連接器
OleDbDataAdapter myAdapter//定義適配器
connStr = "Provider=Microsoft。Jet . OLEDB.4.0數據源= db . MDB ";//連接字符串
conn = new oledb connection(connStr);/*啟動連接,因為適配器會自動打開和關閉數據庫,所以不要使用打開和關閉函數,但是還有壹步啟動連接*/
selectCmd = " Select * From SCORE
my adapter = new oledb dataadapter(select cmd,conn);//將SQL語句與“connection”關聯起來,類似於OleDbCommand類。
我的適配器。Fill(myDataSet,“成績單”);//將SQL查詢到的數據填入myDataSet中的“報告單”中。
selectCmd = " Select * From STOCK
my adapter = new oledb dataadapter(select cmd,conn);
我的適配器。Fill(myDataSet,“股票報價表”);
selectCmd = " Select * From BOOK
my adapter = new oledb dataadapter(select cmd,conn);
我的適配器。Fill(myDataSet,“奇峰書”);//壹個數據集有三個數據表,分別是“成績單”、“股票報價表”、“起風了”
for(int I = 0;我& lt我的數據集。桌子。計數;i++)
{
cboTable。Items.Add(myDataSet。表格[i]。TableName);//將數據表的名稱添加到組合框中。
}
cboTable。Text = myDataSet。表格[2]。TableName
dataGridView1。DataSource = myDataSet。表格[2];/*將dataGridView1與DataSet綁定。只要dataGridView1。數據源發生變化,dataGridView中顯示的數據也會發生變化*/
私有void btnSelect_Click(對象發送方,EventArgs e)
{
dataGridView1。DataSource = myDataSet。表格。text];//可以使用表名來訪問數據集中的表集。
}
重命名數據集中的表,代碼如下:
datatable mapping changeName = new datatable mapping();
changename = my adapter . table mapping . add("原始表名","新表名");
如果妳不懂,建議妳看壹本書,給妳介紹壹本書,visual c#2005完全開發指南。