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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/281396.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/281396.shtml
英文地址,請注明出處:http://en.pswp.cn/news/281396.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

oracle 分組后取每組第一條數據

數據格式 分組取第一條的效果 sql SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY x ORDER BY y DESC) rn, test1.* FROM test1) WHERE rn 1 ;

永大服務器進去顯示字母,永大電梯服務器使用說明

永大電梯服務器使用說明2021-05-25一&#xff0e; 目的&#xff1a;用于工務交車前對MPU和XDR板進行調試。二&#xff0e; 對應作業&#xff1a;1-1對MPU電梯調試接線連接&#xff1a;1).對MPUGB2(A2)版電梯調試時(以及A2前版本)&#xff0c;接線情況如下&#xff1a;連接順序連…

樹莓派Zero 2 W(ubuntu-22.04)通過.NET6和libusb操作USB讀寫

有這個想法的初衷喜歡電子和DIY硬件的朋友對稚暉君應該都不陌生&#xff0c;他定期都會分享一些自己做的好玩的硬件&#xff0c;他之前做了一個ElectronBot桌面機器人我就很感興趣&#xff0c;所以就自己也做了一個。起初我只是自己開發了一個叫電子腦殼的上位機軟件&#xff0…

bzoj4589

fwt 原理并不知道 nim游戲石子異或和0后手贏 那么也就是求a[1]^a[2]^...^a[n]0的方案數 這個和bzoj3992一樣可以dp dp[i][j]表示前i個數異或和為j的方案數 dp[0][0] 1 dp[i][j] dp[i - 1][k] * a[p] p ^ k j a[p] 0 / 1 表示有沒有p這個數 這個東西也不能矩陣快速冪 但是我…

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 85

UnicodeDecodeError: ascii codec cant decode byte 0xe5 in position 85;import sys reload(sys) sys.setdefaultencoding(utf8)

JS設計模式五:職責鏈模式

職責鏈模式簡述 職責連是由多個不同的對象組成的&#xff0c;有發送者跟接收者&#xff0c;分別負責信息的發送跟接收&#xff0c;其中&#xff0c;鏈中第一個對象是 職責連是由多個不同的對象組成的&#xff0c;發送者是發送請求的對象&#xff0c;接收者接收請求并且對其進行…

web框架之Django(一)

Python的WEB框架有Django、Tornado、Flask 等多種&#xff0c;Django相較與其他WEB框架其優勢為&#xff1a;大而全&#xff0c;框架本身集成了ORM、模型綁定、模板引擎、緩存、Session等諸多功能。 基本配置 一、創建django程序 終端命令&#xff1a;django-admin startprojec…

寫一個易于維護使用方便性能可靠的Hybrid框架(一)—— 思路構建

寫一個易于維護使用方便性能可靠的Hybrid框架&#xff08;二&#xff09;—— 插件化 寫一個易于維護使用方便性能可靠的Hybrid框架&#xff08;三&#xff09;—— 配置插件 前言 本來上一篇博文寫完&#xff0c;我就告訴自己&#xff0c;這是最后一篇&#xff0c;之后不再總結…

程序員制作出價值5億外賣神器卻不能取消訂單,你知道嗎?

小編今日給大家帶來RACDisopsable&#xff0c;大家可能有部分人對這個會感覺到很陌生&#xff0c;那么我就用一句話來表達就是他可以幫我們取消訂閱。那么又會有人會對這個產生疑問了&#xff0c;我們什么時候需要用到這個取消訂閱了打個實際的例子來說吧&#xff0c;今天我在餓…

Computer

鏈接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid2196https://blog.csdn.net/shuangde800/article/details/9732825#include<iostream> #include<cstdio> #include<algorithm> #include<vector> #include<queue> #include<cmath&…

智慧“昆明”在路上 未來充滿精彩

智慧城市是運用物聯網、云計算、大數據、移動互聯網、空間地理信息集成等新一代信息技術&#xff0c;促進城市規劃、建設、管理和服務智慧化的新理念和新模式。近年來&#xff0c;昆明市全面加快智慧城市建設&#xff0c;力爭通過三年的努力&#xff0c;打造區域信息輻射中心的…

《精讀 Mastering ABP Framework》教程發布

精讀《Mastering ABP Framework》學習總結&#xff0c;掌握軟件開發最佳實踐&#xff0c;構建可維護 .NET 解決方案。從 ABP Framework 框架中學習如何構建現代 WEB 應用程序。掌握 ABP Framework 框架ABP Framework 是一個完整的基礎架構&#xff0c;遵循軟件開發最佳實踐&…

C# 委托知識總結

1.什么是委托&#xff0c;為什么要使用委托 我正在埋頭苦寫程序&#xff0c;突然想喝水&#xff0c;但是又不想自己去掉杯水而打斷自己的思路&#xff0c;于是我就想讓女朋友去給我倒水。她去給我倒水&#xff0c;首先我得讓她知道我想讓她干什么&#xff0c;通知她之后我可以繼…

阿里云大學課程學習有獎征文活動現在開始

2019獨角獸企業重金招聘Python工程師標準>>> "學有所獲&#xff0c;分享為美"--阿里云大學課程學習有獎征文活動開始啦~~ 看課程&#xff0c;寫心得&#xff0c;贏千元大獎&#xff0c;還有機會加入阿里云大學技術作者群&#xff01;想試試自己的技術文筆…

配置網絡測試環境的批處理

引言 有次需要測試 50 臺左右的設備&#xff0c;每個都要連上電腦并搭好測試環境。這種事當然用服務器下發配置最方便&#xff0c;但條件不允許哦&#xff0c;只得手工一臺臺設。 寫了個批處理配置腳本&#xff0c;放到 U 盤上&#xff0c;最好再配上 autorun.inf&#xff0c;嘿…

Android 的系統架構

Android 的系統架構和其它操作系統一樣&#xff0c;采用了分層的架構。android 分為四個層&#xff0c;從高層到低層分別是應用程序層、應用程序框架層、系統運行庫層和 linux 核心層。 Android 是以 Linux 為核心的手機操作平臺&#xff0c;作為一款開放式的操作系統&#xf…

記一次 .NET 某制造業 MES 系統崩潰分析

一&#xff1a;背景 1.講故事前段時間有位朋友微信找到我&#xff0c;說他的程序偶爾會出現內存溢出崩潰&#xff0c;讓我幫忙看下是怎么回事&#xff0c;咨詢了下程序是 x86 部署&#xff0c;聽到這個詞其實心里已經有了數&#xff0c;不管怎么樣還是用 windbg 分析一下。二&a…

HTTPS協議開通,Apache服務器CSR簽名申請

登錄您的服務器終端 (SSH)。在命令提示符下&#xff0c;鍵入以下命令&#xff1a;openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr將 yourdomain 替換為您要保護的域名。例如&#xff0c;如果您的域名是 coolexample.com&#xff0c;您就…

首次公開!單日600PB的計算力--阿里巴巴EB級大數據平臺的進擊

摘要&#xff1a; 每年的雙11之前&#xff0c;也是MaxCompute各種乾坤大挪移落定的時候&#xff0c;因為雙11就是各種大折騰項目的自然deadline。在今年雙11之前&#xff0c;一路向北遷移和在離線混部項目&#xff0c;將杭州集群除螞蟻外整體遷移到張北&#xff0c;涉及了絕大部…

軟件測試金字塔

軟件測試金字塔 在敏捷方法中&#xff0c;持續集成是其基石&#xff0c;持續集成的核心是自動化測試。下面這篇關于測試金字塔的文章&#xff0c;來自大師Martin Fowler。 測試金字塔的概念來自Mike Cohn&#xff0c;在他的書Succeeding With Agile中有詳細描述&#xff1a;測試…