欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Asp.Net、Ado.net 數(shù)據(jù)庫編程超級(jí)攻略

系統(tǒng) 2072 0
Command 對象中包含了提交給數(shù)據(jù)庫系統(tǒng)的訪問信息
OleDbCommand與SqlCommand對象,它們的基本對象與操作方法是相同的,在此僅介紹OleDbCommand的用法,SqlCommand的用法類推即可。
最常用初始化Command對象的方法是在建立Command實(shí)例中帶入兩個(gè)參數(shù)
OleDbCommand myComm=new OleDbCommand(strQuery,myConnection);
strQuery為SQL語句或儲(chǔ)存過程名,myConnection是建立的Connection對象實(shí)例
Command對象主要的屬性有
Connection:
CommandText:設(shè)置或獲取Command對象使用的Connection對象實(shí)例
CommandType:StoredProceduce、TableDirect、Text(標(biāo)準(zhǔn)SQL語句)
Parameters:取得參數(shù)值集合
ExecuteReader:執(zhí)行CommandText指定的SQL語句或儲(chǔ)存過程名,返回類型為DataReader
ExecuteNonQuery:與ExecuteReader功能相同,只是返回值為執(zhí)行SQL語句或儲(chǔ)存過程受影響的記錄行數(shù)
DataReader--SqlDataReader、OleDbDataReader
FieldCount:顯示當(dāng)前操作記錄的字段總和
IsClosed:判斷DataReader是否關(guān)閉
Close:關(guān)閉DataReader
GetString:以String返回指定列中的值
GetValue:以自身的類型返回指定列中的值
GetValues:返回當(dāng)前記錄所有字段的集合
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;
如果需要執(zhí)行Sql語句,那么還必須給相應(yīng)的CommandText屬性賦值。
my_adapter.SelectCommand.CommandText
= strSelect;
my_adapter.UpdateCommand.CommandText
= strUpdate;
my_adapter.InsertCommand.CommandText
= strInsert;
my_adapter.DeleteCommand.CommandText
= strDelete;
如果只是查詢數(shù)據(jù)庫,則可以建立DataAdapter實(shí)例時(shí)就完成上述工作
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在數(shù)據(jù)發(fā)生改變時(shí),并不能自動(dòng)產(chǎn)生(Transact-SQL),所以一定要使用CommandBuilder,它能自動(dòng)產(chǎn)生Sql語句,!就此一步
RejectChanges是DataSet,DataTable,DataRow共有的方法
使操作對象拒絕已經(jīng)發(fā)生的改變,使數(shù)據(jù)復(fù)員
if (DataSet.HasErrors)
... {

DataSet.RejectChanges();
}

else ... {DataSet.AcceptChanges();}
----------------------------------------------------------------------------------------------------------------------------------
DataReader
-> DataTable
public static DataTableConvertDataReaderToDataTable(SqlDataReaderdataReader)
... {
/**/ /**/ /**/ /// 定義DataTable和模式
DataTabledatatable = new DataTable();
DataTableschemaTable
= dataReader.GetSchemaTable(); // 導(dǎo)入一個(gè)數(shù)據(jù)表的表結(jié)構(gòu)

try
... { /**/ /**/ /**/ /// 動(dòng)態(tài)添加表的數(shù)據(jù)列
foreach (DataRowmyRow in schemaTable.Rows)
... {
DataColumnmyDataColumn
= new DataColumn();
myDataColumn.DataType
= myRow.GetType();
myDataColumn.ColumnName
= myRow[ 0 ].ToString();
datatable.Columns.Add(myDataColumn);
}


/**/ /**/ /**/ /// 添加表的數(shù)據(jù)
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 ;

/**/ /**/ /**/ /// 關(guān)閉數(shù)據(jù)讀取器
dataReader.Close();
return datatable;
}

catch (Exceptionex)
... {
/**/ /**/ /**/ /// 拋出類型轉(zhuǎn)換錯(cuò)誤
SystemError.SystemLog(ex.Message);
throw new Exception(ex.Message,ex);
}

}

}
}

Asp.Net、Ado.net 數(shù)據(jù)庫編程超級(jí)攻略


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日韩免费视频网站 | 日韩精品第一页 | 9999人体做爰大胆视频 | 天天插一插 | 国产九九在线视频 | 久久亚洲精品中文字幕 | 色射综合 | 欧美日韩国产欧美 | 日本久久影视 | 国产三级在线精品男人的天堂 | 欧美影院入口 | 精品国产三级 | 一级毛片成人午夜 | 色呦呦在线看 | 成人免费午夜性视频 | 美剧三体| 欧美福利视频一区二区三区 | 亚洲在线免费视频 | 亚洲综合色视频在线观看 | 亚洲毛片无码专区亚洲A片 日本高清www午色夜黄 | 夜精品一区二区无码A片 | 日韩精品一区二区在线观看 | 亚洲精品久久久久久一区 | 欧洲精品视频完整版在线 | 天天躁日日躁狠狠躁中文字幕 | 精品女同一区二区三区免费播放 | 免费污视频 | 日韩在线视频中文字幕 | 激情久久久久 | 草比网站 | yeyelu| 亚洲午夜成激人情在线影院 | 久久亚洲国产精品 | 国产牛仔裤系列在线观看 | 日本黄色三级网站 | 久本草在线中文字幕亚洲欧美 | 欧美黑人激情 | 91免费视频版 | 亚洲一区二区三区深夜天堂 | 欧美成人全部视频 | 国产精品揄拍100视频最近 |