Fork me on GitHub
C#资源学习地址
摘要: 在项目开发的过程中,有时把整个项目分为三层架构,其中包括:表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。三层的作用分别如下: 表示层:为用户提供交互操作界面,这一点不论是对于Web还是WinForm都是如此,就是用户界面操作。我们网站展示给用户看的界面。 业务逻辑层:负责关键业务的处理和数据的传递。复杂的逻辑判断和涉及到数据库的数据验证都需要在此做出处理。根据传入的值返回用户想得到的值,或者处理相关的逻辑。 数据访问层:见名知意,负责数据库数据的访问。主要为业务逻辑层提供数据,根据传入的值来操作数据库,增、删、改或者其它。 以下我简单介绍下一个用户管理模块: 为了整个项目的开发方阅读全文

posted @ 2011-03-21 20:33 spring yang 阅读(346) | 评论 (3) 编辑 |

摘要: 用list的方法来完成在一个数型结构的文件夹中,可能在拷贝时中间出现了差错,希望有一段代码来比较两个文件夹中的异同数目有多少.主要用到的方法是:1: System.IO.DirectoryInfo.GetFiles("*.*", System.IO.SearchOption.AllDirectories);返回当前目录的文件列表。2:List.Intersect(List);找出兩陣列相同的項目.3:List.Except(List);找出兩陣列不相同的項目-Except新建一个ErrorFrom.cs From代码如下:public partial class Error阅读全文

posted @ 2011-03-18 15:41 spring yang 阅读(1051) | 评论 (1) 编辑 |

摘要: abstract 修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中使用 abstract 修饰符以指示某个类只能是其他类的基类。标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实现。抽象类具有以下特性:抽象类不能实例化。抽象类可以包含抽象方法和抽象访问器。不能用 sealed(C# 参考)修饰符修改抽象类,这意味着抽象类不能被继承。从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实实现。在方法或属性声明中使用 abstract 修饰符以指示方法或属性不包含实现。抽象方法具有以下特性:抽象方法是隐式的虚方法。只允许在抽象类中使用抽象方法声明。因为抽象方法声明阅读全文

posted @ 2011-03-17 15:21 spring yang 阅读(1448) | 评论 (3) 编辑 |

摘要: 接口:描述可属于任何类或结构的一组相关功能,通过interface关键字来声明;接口只包含方法、委托或事件和属性的签名(接口包含的成员)、不能包含字段(因为字段是包含数据的)。方法的实现是“继承”接口的类中完成的;接口可以包含的成员的访问修饰符只能且默认为public;一个接口可以从一个或多个基接口继承;接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员;当基类型列表包含基类和接口时,基类必须是列表中的第一项;实现接口的类可以显式实现该接口的成员,显示实现的成员不能通过类实例访问,而只能通过接口实例访问;类和结构可以按照类继承基类或结构的类似方式继承接口;但注意:类或结构可继阅读全文

posted @ 2011-03-16 15:50 spring yang 阅读(2198) | 评论 (22) 编辑 |

摘要: 代码重构重构(Refactoring)就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。 一、为什么要重构(Refactoring)1、·持续偏纠和改进软件设计。2、·使代码更易为人所理解。3、·帮助发现隐藏的代码缺陷。4、·从长远来看,有助于提高编程效率。二、何时着手重构(Refactoring)1、·代码中存在重复的代码。2、·过大的类和过长的方法。3、·牵一毛而需要动全身的修改。4、·类之间需要过多的通讯。5、·过度耦阅读全文

posted @ 2011-03-15 17:12 spring yang 阅读(2256) | 评论 (15) 编辑 |

摘要: string 的方法: 名称 说明 Clone 返回对此 String 实例的引用。 Compare 已重载。 比较两个指定的 String 对象。 CompareOrdinal 已重载。 通过计算每个字符串中相应 Char 对象的数值来比较两个 String 对象。 CompareTo 已重载。 将此实例与指定的对象或 String 进行比较,并返回二者相对值的指示。 Concat 已重载。 连接 String 的一个或多个实例,或 Object 的一个或多个实例的值的 String 表示形式。 Contains 返回一个值,该值指示指定的 String 对象是否出现在此字符串中。 Copy阅读全文

posted @ 2011-03-14 15:01 spring yang 阅读(353) | 评论 (0) 编辑 |

摘要: 看代码:using System;using System.Runtime.InteropServices;using System.Web.UI;using System.Web.UI.WebControls.WebParts;using System.Xml.Serialization;using Microsoft.SharePoint;using Microsoft.SharePoint.WebControls;using Microsoft.SharePoint.WebPartPages;namespace LoisAndClark.Ajax{[Guid(“be6ec8e3-2706阅读全文

posted @ 2011-03-11 14:23 spring yang 阅读(86) | 评论 (1) 编辑 |

摘要: 先看下微软官方介绍:如果数据类型在它自己的内存分配中存储数据,则该数据类型就是“值类型”。“引用类型”包含指向存储数据的其他内存位置的指针。值类型 值类型包括:所有数字数据类型 Boolean 、Char 和 Date所有结构,即使其成员是引用类型枚举,因为其基础类型总是 SByte、Short、Integer、Long、Byte、UShort、UInteger 或 ULong引用类型 引用类型包括: String 所有数组,即使其元素是值类型类类型,如 Form委托非类型的元素 以下编程元素未限定为类型,因为您无法将它们中的任何一个指定为声明元素的数据类型:命名空间模块事件属性和过程变量、常阅读全文

posted @ 2011-03-11 10:52 spring yang 阅读(337) | 评论 (2) 编辑 |

摘要: 因业务查询要把时间转换为格式为"01/JAN/2008" 这样的,代码处理如下:DateTime.Now().ToString("dd/MMM/yyyy",new System.Globalization.CultureInfo("en-US"))就是把时间处理为如上这样的一种格式,加入new System.Globalization.CultureInfo("en-US")是因为中间月份要处理为英文的前3个字母的简写,不然的话是中文的一月这样子.简单介绍下datetime用法:参数format格式详细用法格式字符阅读全文

posted @ 2011-03-10 14:14 spring yang 阅读(1146) | 评论 (0) 编辑 |

摘要: 代码示例如下:using System;using System.Runtime.InteropServices;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Serialization;namespace LoisAndClark.AspNetExample{public class NormalEditorPart : EditorPart{TextBox _txtNormalBox;protected overrid阅读全文

posted @ 2011-03-08 13:32 spring yang 阅读(132) | 评论 (2) 编辑 |

摘要: 在C#的C/S开发中,用户可以自定义选择文件夹路径,效果如下:首先托一个folderBrowserDialog到From上而后双击Select button 方法如下: private void btnSelectFolder_Click(object sender, EventArgs e) { folderBrowserDialog1.ShowDialog(); txtFilePath.Text = folderBrowserDialog1.SelectedPath; }就能实现如上效果.阅读全文

posted @ 2011-03-07 18:11 spring yang 阅读(109) | 评论 (0) 编辑 |

摘要: 先看实例:在配置文件中加入: <add key="SaveXmlPath" value="D:\SaveXml.xml"/>而后创建一个实全类: public class SingleResultBE { public string Id { get; set; } public string Operation { get; set; } }实现代码如下: private void SavelistToxml(List<SingleResultBE> listInsertResult) { string saveName = C阅读全文

posted @ 2011-03-07 14:32 spring yang 阅读(1038) | 评论 (0) 编辑 |

摘要: 方式一:DataRow[] rows = dtStart.Select("", "Createdate asc");DataTable dttwo = dtStart.Clone(); dttwo.Rows.Add(row); dtStart= dttwo ;方式二:DataView dv = dt.DefaultView;dv.Sort = "ID Asc";dt = dv.ToTable();还是第二种比较简单,适合经常用;阅读全文

posted @ 2011-03-04 16:38 spring yang 阅读(191) | 评论 (4) 编辑 |

摘要: 先看代码:private SPListWS.Lists _ws;private int _rowLimit = 100; //Add by spring yang /// <summary> /// /// </summary> /// <param name="listResultsPart"></param> public void UpdateQARelateField(List<SingleResultBE> listResults) { List<SingleResultBE> listRe阅读全文

posted @ 2011-03-03 18:01 spring yang 阅读(66) | 评论 (0) 编辑 |

摘要: 看代码:private void SetListReadOnly(bool isReadOnly,String _listID, String _listVersion){if (string.IsNullOrEmpty(_listID) || string.IsNullOrEmpty(_listVersion))this.InitListInfo();string updateFields =@"<Fields><Method ID='1'><Field ID='{{28cf69c5-fa48-462a-b5cd-27b6f9d阅读全文

posted @ 2011-03-02 18:22 spring yang 阅读(69) | 评论 (0) 编辑 |

摘要: 先看示例代码:// Put the next line into the Declarations section.private System.Data.DataSet dataSet; private void MakeDataTables(){ // Run all of the functions. MakeParentTable(); MakeChildTable(); MakeDataRelation(); BindToDataGrid();} private void MakeParentTable(){ // Create a new DataTable. System.Dat阅读全文

posted @ 2011-03-01 18:11 spring yang 阅读(130) | 评论 (0) 编辑 |

摘要: 先看一段代码 /// <summary> /// /// </summary> /// <param name="oldName"></param> /// <param name="newName"></param> /// <returns></returns> private bool RenameFilea(string oldName, string newName) { string filepath = System.IO.Directory.G阅读全文

posted @ 2011-02-28 17:40 spring yang 阅读(95) | 评论 (0) 编辑 |

摘要: public BaseProvider() { } private bool useRootSite = false; private bool useElevatedPrivileges = false; private string dataSourceUrl = string.Empty; private bool retrieveOnlyApprovedItems = false; private bool retrieveLastApprovedVersion = false; /// <summary> /// Property that indicates if th阅读全文

posted @ 2011-02-25 16:44 spring yang 阅读(122) | 评论 (0) 编辑 |

摘要: 先看一个实例:private Dictionary<string, string> needfirstReplaces = new Dictionary<string, string>() { {"one","onemail"}, {"two","twomail"}, {"three","threemail"}, {"four","fourmail"} };protected virtual Dictionary阅读全文

posted @ 2011-02-24 18:02 spring yang 阅读(208) | 评论 (0) 编辑 |

摘要: private enum SqlConnectionOwnership { /// <summary>Connection is owned and managed by SqlHelper</summary> Internal, /// <summary>Connection is owned and managed by the caller</summary> External } public static SqlDataReader ExecuteReader(string connectionString, CommandType c阅读全文

posted @ 2011-02-23 14:48 spring yang 阅读(218) | 评论 (2) 编辑 |

摘要: 首先添加:using System.Net.Mail;代码如下,具体自己处理,以符合你的需求: public static bool SendMail(string subject, string body) { bool result = false; try { List<string> toMailList =new List<string>(){ {"sping@sina.com"}, {"springyang@sina.com"} }; if (toMailList.Count > 0) { MailMessage mail = new MailMess阅读全文

posted @ 2011-02-22 14:22 spring yang 阅读(113) | 评论 (0) 编辑 |

摘要: query:传入的查询条件; 如下: <Where> <And> <And> <Leq> <FieldRef Name=CreateDate' /> <Value Type='DateTime' IncludeTimeValue='TRUE'>" + SPUtility.CreateISO8601DateTimeFromSystemDateTime(WebHelper.GetSiteLocalTime(DateTime.Now)) + @"</Value> </Leq> <Eq> <阅读全文

posted @ 2011-02-21 12:53 spring yang 阅读(126) | 评论 (0) 编辑 |

摘要: string.Concat:参数arg0Object 或 空引用(在 Visual Basic 中为 Nothing)。返回值arg0 的值的 String 表示形式。如 string.Concat("a","b","c","d") 的值是 "abcd",作用是连接字符串.string.SubstringString.Substring (Int32) 从此实例检索子字符串。子字符串从指定的字符位置开始。如:string str = "abcdefg";str = str.Substring(3);str的结果是"efg";因为字符串索引从0开始,3其实是第四个字符.String.Substr阅读全文

posted @ 2011-02-18 17:26 spring yang 阅读(60) | 评论 (0) 编辑 |

摘要: 代码如下: private string GetHttpStr(string str, string httpStr) { bool Ishavevalue = false; int newlength = httpStr.Length; string newstr = null; string httpendString = "<"; if (str.Length >= newlength && str.Contains(httpStr)) { newstr = str.Substring(str.IndexOf(httpStr, StringCompariso阅读全文

posted @ 2011-02-16 18:21 spring yang 阅读(58) | 评论 (0) 编辑 |

摘要: 运行如下代码时发现弹出Exception from HRESULT: 0x800A03EC异常 private void ExportExcel(DataTable dt) { if (dt == null) return; Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); if (xlApp == null) { return; } System.Globalization.CultureInfo CurrentCI = System.Thr阅读全文

posted @ 2011-02-16 17:41 spring yang 阅读(127) | 评论 (0) 编辑 |

摘要: fileURL:上传文件的路地址docfile:byte[]类型的字节流private void UploadToLibrary(string fileURL, byte[] docfile) { WebRequest request = WebRequest.Create(fileURL); request.Credentials = System.Net.NetworkCredential(ConfigurationManager.AppSettings["UserName"], ConfigurationManager.AppSettings["UserPassword"], Confi阅读全文

posted @ 2011-02-15 17:59 spring yang 阅读(79) | 评论 (0) 编辑 |

摘要: Domain:域名,地址名;folderURL:Domain+文件夹名如下就会在Domain一个文件夹 public bool CreateFolder(string folderURL) { try { WebRequest request = WebRequest.Create(folderURL); request.Credentials = System.Net.NetworkCredential(ConfigurationManager.AppSettings["UserName"], ConfigurationManager.AppSettings["UserPassword"],阅读全文

posted @ 2011-02-15 16:41 spring yang 阅读(47) | 评论 (0) 编辑 |

摘要: 新建一个类public class FolderBE { public string FolderOne { get; set; } public string FolderTwo { get; set; } public string FolderThree { get; set; } public string FolderFour { get; set; } public string FolderFive { get; set; } }然后 List<FolderBE> listFolder = new List<FolderBE>(); FolderB阅读全文

posted @ 2011-02-14 17:47 spring yang 阅读(135) | 评论 (0) 编辑 |

摘要: 首先引用Microsoft.Office.Interop.Excel;阅读全文

posted @ 2011-02-14 15:30 spring yang 阅读(107) | 评论 (0) 编辑 |

摘要: private List&lt;string&gt; getURLFromContent(string content) { string regexStr = @"(http|ftp|https):\/\/[\w]+(.[\w]+)([\w\-\.,@?・^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])"; System.Text.RegularExpressions.MatchCollection mc = System.Text.RegularExpressions.Regex.Matches(conte阅读全文

posted @ 2011-02-12 18:20 spring yang 阅读(80) | 评论 (0) 编辑 |

摘要: 新建一个类public class FolderBE { public string FolderOne { get; set; } public string FolderTwo { get; set; } public string FolderThree { get; set; } public string FolderFour { get; set; } public string FolderFive { get; set; } }然后: List&lt;FolderBE&gt; listFolder = new List&lt;FolderBE&am阅读全文

posted @ 2011-02-12 18:12 spring yang 阅读(126) | 评论 (4) 编辑 |

posted @ 2011-02-10 09:52 spring yang 阅读(150) | 评论 (0) 编辑 |

摘要: 在C#写代码时发现Replace没有像compare一样有区分大小对比的方法, 所以我就自己写了一个方法ReplaceStr如下: private string ReplaceStr(string str, string key, string value,bool IgnoreCase) { string newstr = str.Replace(key, value); int i = newstr.IndexOf(key, StringComparison.OrdinalIgnoreCase); if (i > 0&&IgnoreCase) { key = newstr.Substrin阅读全文

posted @ 2011-01-31 16:58 spring yang 阅读(135) | 评论 (0) 编辑 |

摘要: abstract:抽像一个方法或一个类,抽像一个类时如下:public abstract class MigrateBase{protected abstract List<string> NeedReplaceColumn { get; }}MigrateBase 就可以做为其它类的基类,NeedReplaceColumn 属性在其的子类中则必须重写,就是说的override,而且abstract 在声名方法或属性时,实现不要写;virtual:虚拟一个方法,如下public abstract class MigrateBase{ protected virtual List<string>阅读全文

posted @ 2011-01-31 16:46 spring yang 阅读(104) | 评论 (0) 编辑 |

摘要: 添加using System.Net; string HttpStr 即下载的URL地址; string SaveUrl 要保存到本地的地址; private bool GetAndSaveFile(string HttpStr,string SaveUrl) { try { if (SaveUrl.LastIndexOf("\\") != SaveUrl.Length) { SaveUrl = SaveUrl + "\\"; } WebClient mywebclient = new WebClient(); int i = HttpStr.LastIndexOf("/"); strin阅读全文

posted @ 2011-01-30 17:28 spring yang 阅读(171) | 评论 (1) 编辑 |

posted on 2011-03-21 22:38  HackerVirus  阅读(382)  评论(0编辑  收藏  举报