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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

CYQ.Data 数据框架 V4.0 开源版本发布(源码提供下载,秋色园V2.5版本标配框架)

發布時間:2023/12/9 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CYQ.Data 数据框架 V4.0 开源版本发布(源码提供下载,秋色园V2.5版本标配框架) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

說明的說明:

?

博客園團隊兩次移此文出首頁,說

這篇文章不屬于知識分享型文章,并且有廣告嫌疑。

本文的確屬于分享型文章,而且分享的知識點比其它文章都多很多,看看網友回復“謝謝分享”就知道是分享型文章了。

?

所謂廣告嫌疑,這東西一被扣上,就很難說的清。

本框架從2007年就始發布在博客園,一直更新維護到現在,其中是有過渡到最新版本是收費,但是仍保留開放很多版本的開源的。

但目前發布的,都是開源的免費版本,再說,涉及到收費就是廣告?ext也有收費版本,出現ext相關文章你咋不說是廣告?

win8,wp8你用的windows都是收費的,相關的文章你是不是也要說廣告??

?

話也不我說,這么久沒寫文章,露臉少了,欺負我新人是不? 你再欺負我,欺負我,我。。。。只好沉默了。

?

前言:

?

好久沒寫文章了,最近習慣了寫微博,發微博,都是140字以內+張圖片,偶爾發一發,也偶爾在閃存里閃一閃。

以前天天寫博客時,閉上眼也能寫的很長很長,這人長久不寫博客時,一拖再拖也只能迸出那么點字,悲劇的習慣!

?

在開源的這條路上,走過了很久很久,有一些想法,也麻木到沒有想法。

每當上園子來,看到開源的相關文章,我都會盡力的頂上一頂,但是總會發現下面的評論,是負面聲音一片,除了留下郵箱才能發源碼的那種。

之后的一段時間,很少再看到博主會堅持的不怕罵聲的繼續發布或更新開源文章,少但不排除沒有。?

目前就這種現狀,各位開源流的博主,還是要頂住罵聲往前走!大帝保佑你們!?


正文:

?

本次開源?CYQ.Data?數據框架 V4.0 開源版本,具體下載地址:http://www.cyqdata.com/download/article-detail-426

本人對研究本框架的人士持續提供技術支持,技術指導。

?

學習本框架,至少您能學到如何真正做到多對數據庫的支持,和各種數據庫的差異性語法(那些說支持多數據庫,只有接口卻等你去實現的都是浮云,因為實現過才知道,差異性的兼容才是最麻煩的,框架的開發者把最麻煩的事留給你,卻對你說支持多種數據庫,這是多悲劇的事,有能力實現差異性兼容,估計你也有能力寫出自己的框架了)。

?

這也將成為您往后編寫自己的框架的資本,研究并掌握底層的框架有助于你成長為高級人士,獲得更豐富的待遇。

園子里已經有很多同學參考并學習了源碼,編寫出屬于自己個性的框架,您還等待什么?

框架截圖:

?

?

具體的更新記錄,在源碼里就有了,這里就不重復的又貼一大堆文字出來了。?

?

這里貼一段開源的代碼中的Json操作類代碼,避免博客園工作人員誤操作:

?

internal?class?JsonHelper
????{
????????///?<summary>
????????
///?是否成功???
????????
///?</summary>
????????public?bool?Success
????????{
????????????get
????????????{
????????????????return?count?>?0;
????????????}
????????}
????????private?string?errorMsg?=?"";
????????///?<summary>
????????
///?錯誤提示信息???
????????
///?</summary>
????????public?string?ErrorMsg
????????{
????????????get
????????????{
????????????????return?errorMsg;
????????????}
????????????set
????????????{
????????????????errorMsg?=?value;
????????????}
????????}
????????private?int?count?=?0;
????????///?<summary>
????????
///?總記?
????????
///?</summary>
????????public?int?Count
????????{
????????????get
????????????{
????????????????return?count;
????????????}
????????????set
????????????{
????????????????count?=?value;
????????????}
????????}
????????private?List<string>?arrData?=?new?List<string>();

????????#region?對象與對象之間分割符
????????public?void?addItemOk()
????????{
????????????arrData.Add("<br>");
????????}
????????#endregion

????????#region?在數組里添加key,value
????????public?void?addItem(string?name,?string?value)
????????{
????????????arrData.Add("\""?+?name?+?"\":"?+?"\""?+?value?+?"\"");
????????}
????????#endregion

????????#region?返回組裝好的json字符串
????????public?override?string?ToString()
????????{
????????????StringBuilder?sb?=?new?StringBuilder();
????????????sb.Append("{");
????????????sb.Append("\"count\":\""?+?count?+?"\",");
????????????sb.Append("\"error\":\""?+?errorMsg?+?"\",");
????????????sb.Append("\"success\":\""?+?(Success???"true"?:?"")?+?"\",");
????????????sb.Append("\"data\":[");

????????????int?index?=?0;
????????????sb.Append("{");
????????????if?(arrData.Count?<=?0)
????????????{
????????????????sb.Append("}]");
????????????}
????????????else
????????????{
????????????????foreach?(string?val?in?arrData)
????????????????{
????????????????????index++;

????????????????????if?(val?!=?"<br>")
????????????????????{
????????????????????????sb.Append(val?+?",");
????????????????????}
????????????????????else
????????????????????{
????????????????????????sb?=?sb.Replace(",",?"",?sb.Length?-?1,?1);
????????????????????????sb.Append("},");
????????????????????????if?(index?<?arrData.Count)
????????????????????????{
????????????????????????????sb.Append("{");
????????????????????????}
????????????????????}

????????????????}
????????????????sb?=?sb.Replace(",",?"",?sb.Length?-?1,?1);
????????????????sb.Append("]");
????????????}

????????????sb.Append("}");
????????????return?sb.ToString();

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

????????#region?為DataTable增加處理
????????public?void?Fill(MDataTable?table)
????????{
????????????if?(table?==?null)
????????????{
????????????????ErrorMsg?=?"查詢對象為Null";
????????????????return;
????????????}
????????????Count?=?table.Rows.Count;
????????????for?(int?i?=?0;?i?<?table.Rows.Count;?i++)
????????????{
????????????????for?(int?j?=?0;?j?<?table.Columns.Count;?j++)
????????????????{
????????????????????addItem(table.Columns[j].ColumnName,?Convert.ToString(table.Rows[i][j].Value));
????????????????}
????????????????addItemOk();
????????????}
????????}
????????public?MDataTable?Load(string?json)
????????{
????????????MDataTable?table?=?new?MDataTable("loadFromJson");
????????????if?(!string.IsNullOrEmpty(json)?&&?json.Length?>?30?&&?json.StartsWith("{")?&&?json.IndexOf(',')?>?-1?&&?json.EndsWith("}"))
????????????{
????????????????try
????????????????{
????????????????????int?start=json.IndexOf(":[{")?+?2;
????????????????????string?data?=?json.Substring(start,?json.LastIndexOf("]}")?-?start);
????????????????????data?=?data.Replace("\\}",?"#100#").Replace("\\,",?"#101#").Replace("\\:,",?"#102#");
????????????????????bool?isOK=false;
????????????????????if?(!string.IsNullOrEmpty(data))
????????????????????{
????????????????????????string[]?items?=?data.Replace("{",string.Empty).Split('}');//分隔每一行
????????????????????????string?item?=?string.Empty,?key?=?string.Empty,?value?=?string.Empty;
????????????????????????for?(int?i?=?0;?i?<?items.Length;?i++)//循環每一行數據
????????????????????????{
????????????????????????????item?=?items[i].Replace("#100#",?"\\}").Trim(',');
????????????????????????????if?(string.IsNullOrEmpty(item))
????????????????????????????{
????????????????????????????????continue;
????????????????????????????}
????????????????????????????string[]?keyValues?=?item.Split(',');

????????????????????????????string?keyValue?=?string.Empty;
????????????????????????????if?(i?==?0)
????????????????????????????{
????????????????????????????????for?(int?j?=?0;?j?<?keyValues.Length;?j++)
????????????????????????????????{
????????????????????????????????????keyValue?=?keyValues[j].Replace("#101#",?"\\,");
????????????????????????????????????key?=?keyValue.Split(':')[0].Trim('\'',?'\"');
????????????????????????????????????table.Columns.Add(key,?SqlDbType.NVarChar);
????????????????????????????????}
????????????????????????????????isOK=true;
???????????????????????????????
????????????????????????????}
????????????????????????????if?(isOK)
????????????????????????????{
????????????????????????????????MDataRow?row?=?table.NewRow();
????????????????????????????????for?(int?k?=?0;?k?<?keyValues.Length;?k++)
????????????????????????????????{
????????????????????????????????????keyValue?=?keyValues[k].Replace("#101#",?"\\,");
????????????????????????????????????if?(keyValue.IndexOf(':')?>?-1)
????????????????????????????????????{
????????????????????????????????????????value?=?keyValue.Substring(keyValue.IndexOf(':')+1).Replace("#102#",?"\\:").Trim('\'',?'\"');
????????????????????????????????????????row[k].Value?=?value;
????????????????????????????????????}
????????????????????????????????}
????????????????????????????????table.Rows.Add(row);
????????????????????????????}

????????????????????????}
????????????????????}
????????????????}
????????????????catch
????????????????{
????????????????????return?table;
????????????????}
????????????}
????????????return?table;
????????}
????????#endregion
????}

?

?

本版本為秋色園V2.0和V2.5對應的框架版本,為了促進國內ASP.NET開源博客更進一步和諧,近期將跳過2.0版本開源秋色園V2.5多用戶版本。

?

秋色園系列原理文章網上都很多了,想學習的同學就不要錯過了:http://www.cnblogs.com/cyq1162/archive/2010/12/14/1905776.html


這里也有51cto大賽的參賽頁面,感謝路過的朋友也順手扔一票:http://blog.51cto.com/contest2012/2127378?

?

版權聲明:本文原創發表于博客園,作者為路過秋天,原文鏈接:

http://www.cnblogs.com/cyq1162/archive/2012/10/31/2747976.html

總結

以上是生活随笔為你收集整理的CYQ.Data 数据框架 V4.0 开源版本发布(源码提供下载,秋色园V2.5版本标配框架)的全部內容,希望文章能夠幫你解決所遇到的問題。

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