日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CYQ.Data 轻量数据层之路 自定义MDataTable绑定续章(七)

發(fā)布時間:2025/3/8 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CYQ.Data 轻量数据层之路 自定义MDataTable绑定续章(七) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本章起,將續(xù)章講解整框架當初的設計思路:

本章既為續(xù)章,說明我以前寫過,是的,以前我寫過內部整個MDataTable的構造,不過,當初匆匆寫完后,

最后一步的實現MDataTable綁定GridView/DataList/Repeater還差一點,這章續(xù)上!

這里列出我以前寫過的關于構造自定義MDataTable系列文章:

備注:以下內容為早期所寫,文字少,代碼多,有不明之處,歡迎在文章后面留言!

?

1:CYQ.Data 輕量數據訪問層(二) 構造數據單元(上)

2:CYQ.Data 輕量數據訪問層(三) 構造數據單元(下)

3:CYQ.Data 輕量數據訪問層(四) 構造數據單元列

4:CYQ.Data 輕量數據訪問層(五) 構造數據行

5:CYQ.Data 輕量數據訪問層(六) 構造數據表

6:CYQ.Data 輕量數據訪問層(七) 自定義數據表實現綁定常用的數據控件(上)

7:CYQ.Data 輕量數據訪問層(八) 自定義數據表實現綁定常用的數據控件(中)

8:CYQ.Data 輕量數據訪問層(九) 自定義數據表實現綁定常用的數據控件(下)

?

在寫完第八篇(九)之后,我們的測試結果里,并沒有完成綁定功能,我們來看一下測試代碼:

????????????MDataTable?table=new?MDataTable("myTableName");
????????????table.Columns.Add(
"Url",?SqlDbType.NVarChar);
????????????table.Columns.Add(
"Name",SqlDbType.NVarChar);

????????????MDataRow?mdr?
=?table.NewRow();
????????????mdr[
0].Value?=?"http://cyq1162.cnblogs.com/";
????????????mdr[
1].Value?=?"路過秋天";
????????????table.Rows.Add(mdr);
????????????GridView1.DataSource?
=?table;
????????????GridView1.DataBind();

?

我們像普通的DataTable一樣,添加了兩列,然后對列賦值:

我們看一下測試的結果:

很明顯,綁定的結果亂七雜八,不是我們想要的。?

?

經過代碼對比,發(fā)現,我們的MDataRow得實現IDataRecord接口才行,于是,讓IDataRecord繼承接口,并實現:

public?class?MDataRow?:?List<MDataCell>,?IDataRecord
????{
???????
///?...省略N行已有代碼...

????????
#region?IDataRecord?成員

????????
int?IDataRecord.FieldCount
????????{
????????????
get
????????????{
????????????????
return?base.Count;
????????????}
????????}

????????
bool?IDataRecord.GetBoolean(int?i)
????????{
????????????
return?(bool)this[i].Value;
????????}

????????
byte?IDataRecord.GetByte(int?i)
????????{
????????????
return?(byte)this[i].Value;
????????}

????????
long?IDataRecord.GetBytes(int?i,?long?fieldOffset,?byte[]?buffer,?int?bufferoffset,?int?length)
????????{
????????????
throw?new?Exception("The?method?or?operation?is?not?implemented.");
????????}

????????
char?IDataRecord.GetChar(int?i)
????????{
????????????
return?(char)this[i].Value;
????????}

????????
long?IDataRecord.GetChars(int?i,?long?fieldoffset,?char[]?buffer,?int?bufferoffset,?int?length)
????????{
????????????
return?(long)this[i].Value;
????????}

????????IDataReader?IDataRecord.GetData(
int?i)
????????{
????????????
throw?new?Exception("The?method?or?operation?is?not?implemented.");
????????}

????????
string?IDataRecord.GetDataTypeName(int?i)
????????{
????????????
return?(string)this[i].Value;
????????}

????????DateTime?IDataRecord.GetDateTime(
int?i)
????????{
????????????
return?(DateTime)this[i].Value;
????????}

????????
decimal?IDataRecord.GetDecimal(int?i)
????????{
????????????
return?(decimal)this[i].Value;
????????}

????????
double?IDataRecord.GetDouble(int?i)
????????{
????????????
return?(double)this[i].Value;
????????}

????????Type?IDataRecord.GetFieldType(
int?i)
????????{
????????????
return?this[i].Value.GetType();
????????}

????????
float?IDataRecord.GetFloat(int?i)
????????{
????????????
return?(float)this[i].Value;
????????}

????????Guid?IDataRecord.GetGuid(
int?i)
????????{
????????????
return?(Guid)this[i].Value;
????????}

????????
short?IDataRecord.GetInt16(int?i)
????????{
????????????
return?(short)this[i].Value;
????????}

????????
int?IDataRecord.GetInt32(int?i)
????????{
????????????
return?(int)this[i].Value;
????????}

????????
long?IDataRecord.GetInt64(int?i)
????????{
????????????
return?(long)this[i].Value;
????????}

????????
string?IDataRecord.GetName(int?i)
????????{
????????????
return?(string)this[i].Value;
????????}

????????
int?IDataRecord.GetOrdinal(string?name)
????????{
????????????
return?(int)this[name].Value;
????????}

????????
string?IDataRecord.GetString(int?i)
????????{
????????????
return?(string)this[i].Value;
????????}

????????
object?IDataRecord.GetValue(int?i)
????????{
????????????
return?this[i].Value;
????????}

????????
int?IDataRecord.GetValues(object[]?values)
????????{
????????????
return?0;
????????}

????????
bool?IDataRecord.IsDBNull(int?i)
????????{
????????????
return?this[i].Value?==?DBNull.Value;
????????}

????????
object?IDataRecord.this[string?name]
????????{

????????????
get
????????????{
????????????????
return?this[name].Value;
????????????}
????????}

????????
object?IDataRecord.this[int?i]
????????{
????????????
get
????????????{
????????????????
return?this[i].Value;
????????????}
????????}

????????
#endregion
????}

?

接著瀏覽了一下,不見啥效果。

?

于是又對比了一下代碼,發(fā)現原來的MDataTable是采用繼承方式List<MDataRow>,

于是,把它給弄到下面來了:

?public?class?MDataTable?:?IDataReader,?IEnumerable
????{
????????
private?List<MDataRow>?_Mdr;
????????
public?List<MDataRow>?Rows
????????{
????????????
get
????????????{
????????????????
return?_Mdr;
????????????}
????????}
?????
//...下面省略N行...
}

?

?

接著小調整了一下,再次瀏覽,終于效果出來了:

?

?

?

至此,整個框架三部分中自定義MDataTable系列,就到此結束了。

?

?

備注:完整框架源碼會在本系列結束之后另開章節(jié)發(fā)布,暫時望勿激動,學習思想才是重要的。

如果在學習過程中發(fā)現有什么問題,歡迎留言!

版權聲明:本文原創(chuàng)發(fā)表于博客園,作者為路過秋天,原文鏈接:

http://www.cnblogs.com/cyq1162/archive/2010/08/24/1806300.html

總結

以上是生活随笔為你收集整理的CYQ.Data 轻量数据层之路 自定义MDataTable绑定续章(七)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 边啃奶头边躁狠狠躁 | 成人伊人 | 6996电视影片免费看 | 3d动漫啪啪精品一区二区中文字幕 | 国产精品日韩欧美 | 国产卡一卡二卡三 | 巨乳免费观看 | 潘金莲三级80分钟 | 欧美色鬼| 亚洲第一免费视频 | 狠狠激情 | 成人免费短视频 | 熟妇五十路六十路息与子 | 亚洲天堂网址 | 日本免费爱爱视频 | 亚洲精品国产美女 | 国产精品久久久久蜜臀 | 一区二区三区三区在线 | 婷婷伊人综合 | 亚洲熟妇毛茸茸 | 国产精品成人99一区无码 | www.久久久久 | 性生交大片免费看3p | 亚洲天堂av电影 | 欧美性久久久 | 亚洲美女屁股眼交3 | 91大神精品在线 | 精品无码人妻一区二区三区品 | 91打屁股| 亚洲无码乱码精品国产 | 亚洲视频中文 | ass日本 | 亚洲第一天堂网 | 国产亚洲欧美在线 | 亚洲大片免费观看 | 日韩欧美中文在线 | 蜜臀99久久精品久久久久久软件 | 亚洲狼人av | 成年人免费在线观看视频网站 | 亚洲最大成人网站 | 亚洲国产精品无码久久 | 精品国产av鲁一鲁一区 | 成人av网站免费 | 四虎精品在线观看 | 成人精品亚洲 | 中文字幕在线观看av | 福利视频在线导航 | 伊人久久久久久久久久久久 | 男女黄床上色视频免费的软件 | 精品欧美激情精品一区 | 韩日视频在线 | 热久久在线 | 黄网免费在线观看 | 97成人精品 | 国产亚洲网站 | 超碰97国产在线 | 国产二区三区视频 | 亚洲第一视频区 | 在线观看国产三级 | 妺妺窝人体色www婷婷 | av资源一区 | 久久精品2019中文字幕 | 能看毛片的网站 | 欧美性做爰猛烈叫床潮 | 性巴克成人免费网站 | 国产最新视频在线 | 亚洲综合三区 | 精品在线一区二区三区 | 亚洲怡春院 | 日韩在线一区二区 | 香蕉久久a毛片 | 毛片免费一区二区三区 | 欧洲美女av| 动漫精品一区 | 日本免费一区二区三区四区五六区 | 国产欧美一区二区精品久久久 | 理论毛片| 国产电影一区二区三区爱妃记 | 日韩视频免费在线观看 | 国产精彩视频一区 | 毛片网在线观看 | 欧美一级片一区二区 | 四虎成人影视 | 久久亚洲精品国产精品黑人v | 日韩毛片视频 | 伊人伦理 | 亚洲av成人无码久久精品 | 99情趣网 | 九九热国产 | www精品一区二区三区 | 欧美三级视频 | 91新视频 | 妺妺窝人体色www聚色窝仙踪 | 亚洲黄页网站 | 一直草| 亚洲一页 | 日本一区二区三区四区视频 | 久久久久久片 | 亚洲欧美一区二区三区不卡 |