Command
對象中包含了提交給數據庫系統的訪問信息
OleDbCommand與SqlCommand對象,它們的基本對象與操作方法是相同的,在此僅介紹OleDbCommand的用法,SqlCommand的用法類推即可。
最常用初始化Command對象的方法是在建立Command實例中帶入兩個參數
OleDbCommand myComm=new OleDbCommand(strQuery,myConnection);
strQuery為SQL語句或儲存過程名,myConnection是建立的Connection對象實例
Command對象主要的屬性有
Connection:
CommandText:設置或獲取Command對象使用的Connection對象實例
CommandType:StoredProceduce、TableDirect、Text(標準SQL語句)
Parameters:取得參數值集合
ExecuteReader:執行CommandText指定的SQL語句或儲存過程名,返回類型為DataReader
ExecuteNonQuery:與ExecuteReader功能相同,只是返回值為執行SQL語句或儲存過程受影響的記錄行數
OleDbCommand與SqlCommand對象,它們的基本對象與操作方法是相同的,在此僅介紹OleDbCommand的用法,SqlCommand的用法類推即可。
最常用初始化Command對象的方法是在建立Command實例中帶入兩個參數
OleDbCommand myComm=new OleDbCommand(strQuery,myConnection);
strQuery為SQL語句或儲存過程名,myConnection是建立的Connection對象實例
Command對象主要的屬性有
Connection:
CommandText:設置或獲取Command對象使用的Connection對象實例
CommandType:StoredProceduce、TableDirect、Text(標準SQL語句)
Parameters:取得參數值集合
ExecuteReader:執行CommandText指定的SQL語句或儲存過程名,返回類型為DataReader
ExecuteNonQuery:與ExecuteReader功能相同,只是返回值為執行SQL語句或儲存過程受影響的記錄行數
DataReader--SqlDataReader、OleDbDataReader
FieldCount:顯示當前操作記錄的字段總和
IsClosed:判斷DataReader是否關閉
Close:關閉DataReader
GetString:以String返回指定列中的值
GetValue:以自身的類型返回指定列中的值
GetValues:返回當前記錄所有字段的集合
Read:讀下一條記錄
例:
<%
@PageLanguage
=
"
C#
"
%>
<%
@ImportNamespace
=
"
System.Data
"
%>
<%
@ImportNamespace
=
"
System.Data.OleDb
"
%>
-------------------------------------------
<%
@ImportNamespace
=
"
System.Data.SqlClient
"
%>
<
ScriptLanguage
=
"
c#
"
Runat
=
"
Server
"
>
OleDbDataReaderdr;
Stringmyconnstring
=
"
Provider=Microsoft.Jet.OLEDB.4.0;DataSource=
"
+
Server.MapPath(
"
.
"
)
+
"
..\mdb
"
;
string
sql
=
"
..
"
OleDbConnectionmy_conn
=
new
OleDbConnection(myconnstring);
OleDbCommandmy_comm
=
new
OleDbCommand(sql,my_conn);
my_comm.Connection.Open();
dr
=
my_comm.ExecuteReader();
//
DataGriddg
dg.DataSource
=
dr
dg.DataBind();
</
Script
>
<
head
>
<%
while
(dr.Read())
{;}
%>
</
head
>
DataSetDataAdapter
DataAdapter是與DataSet配套使用的
OleDbDataAdaptermy_adapter
=
new
OleDbDataAdapter();
-------------------------------------------------
SqlDataAdaptermy_sqladapter
=
new
SqlDataAdapter();
my_adapter.SelectCommand.Connection
=
my_conn;
或
my_adapter.UpdateCommand.Connection
=
my_conn;
my_adapter.DeleteCommand.Connection
=
my_conn;
my_adapter.InsertCommand.Connection
=
my_conn;
如果需要執行Sql語句,那么還必須給相應的CommandText屬性賦值。
my_adapter.SelectCommand.CommandText
=
strSelect;
my_adapter.UpdateCommand.CommandText
=
strUpdate;
my_adapter.InsertCommand.CommandText
=
strInsert;
my_adapter.DeleteCommand.CommandText
=
strDelete;
如果只是查詢數據庫,則可以建立DataAdapter實例時就完成上述工作
OleDbDataAdapterMyAdapter
=
new
OleDbDataAdapter(sql,my_conn);
DataSetds
=
new
DataSet();
OleDbConnectionmy_conn
=
new
OleDbConnection(myconnstring);
OleDbDataAdaptermy_adapter
=
new
OleDbDataAdapter(sql,my_conn);
my_adapter.fill(ds,
"
score
"
);
DataGridscore;
score.DataSource
=
ds.Table[
"
score
"
].Defaultview;
score.DataBind();
//
InsertCommand
DataRowdr
=
ds.Table[
"
Score
"
].NewRow();
dr[
"
name
"
]
=
..
ds.Tables[
"
Score
"
].Rows.Add(dr);
//
update
DataAdapter.Update(ds,
"
Score
"
);
//
modify
DataRowdr
=
ds.Tables[
"
Score
"
].Rows[
0
];
dr[
"
name
"
]
=
;
//
Delete
DataRowdr
=
ds.Talbes[
"
Score
"
].Rows[
0
];
dr.Delete();
//
注:
OleDbConnectionmy_conn
=
new
OleDbConnection(myconnstring);
OleDbDataAdaptermy_adapter
=
new
OleDbDataAdapter(sql,my_conn);
OleDbCommandBuildercustCB
=
new
OleDbCommandBuilder(my_adapter);
//
DataAdapter在數據發生改變時,并不能自動產生(Transact-SQL),所以一定要使用CommandBuilder,它能自動產生Sql語句,!就此一步
RejectChanges是DataSet,DataTable,DataRow共有的方法
使操作對象拒絕已經發生的改變,使數據復員
if
(DataSet.HasErrors)
{
DataSet.RejectChanges();
}
else
{DataSet.AcceptChanges();}
----------------------------------------------------------------------------------------------------------------------------------
DataReader
->
DataTable
public
static
DataTableConvertDataReaderToDataTable(SqlDataReaderdataReader)
{
/**/
///
定義DataTable和模式
DataTabledatatable
=
new
DataTable();
DataTableschemaTable
=
dataReader.GetSchemaTable();
//
導入一個數據表的表結構
try
{
/**/
///
動態添加表的數據列
foreach
(DataRowmyRow
in
schemaTable.Rows)
{
DataColumnmyDataColumn
=
new
DataColumn();
myDataColumn.DataType
=
myRow.GetType();
myDataColumn.ColumnName
=
myRow[
0
].ToString();
datatable.Columns.Add(myDataColumn);
}
/**/
///
添加表的數據
while
(dataReader.Read())
{
DataRowmyDataRow
=
datatable.NewRow();
for
(
int
i
=
0
;i
<
schemaTable.Rows.Count;i
++
)
{
myDataRow[i]
=
dataReader[i].ToString();
}
datatable.Rows.Add(myDataRow);
myDataRow
=
null
;
}
schemaTable
=
null
;
/**/
///
關閉數據讀取器
dataReader.Close();
return
datatable;
}
catch
(Exceptionex)
{
/**/
///
拋出類型轉換錯誤
SystemError.SystemLog(ex.Message);
throw
new
Exception(ex.Message,ex);
}
}
}
}
FieldCount:顯示當前操作記錄的字段總和
IsClosed:判斷DataReader是否關閉
Close:關閉DataReader
GetString:以String返回指定列中的值
GetValue:以自身的類型返回指定列中的值
GetValues:返回當前記錄所有字段的集合
Read:讀下一條記錄
例:





















































































































更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
