随笔分类 -  C#

摘要:ASP.NET MVC中,Controller向View传递数据的方式有一下6种ViewDataViewBagPartialViewTempDataViewModelTuple1、ViewData和ViewBag ViewData使用键值对Key/Value存储对象,ViewBag通过动态类型dynamic存放对象 ViewData在View中使用的时候要转换为相应类型,而ViewBag可以作为属性直接使用(但没有智能提示) ViewData的存取效率比ViewBag快 ViewData["key1"] = "value1"; ViewData[&quo 阅读全文
posted @ 2014-01-31 11:32 bomo 阅读(718) 评论(0) 推荐(0)
摘要:EF删除和修改数据只能先从数据库取出,然后再进行删除 delete from Table1 where Id>5; update Table1 set Age=10;我们需要这样操作//删除var t1 = context.Table1.Where(t => t.Id > 5).ToList();foreach(var t in t1){ context.Table1.Remove(t);}context.SaveChange();//更新var t1 = context.Table1.ToList();foreach(var t in t1){ t.Age = 10;}co 阅读全文
posted @ 2014-01-07 23:31 bomo 阅读(19649) 评论(0) 推荐(3)
摘要:1、增加对象 DbEntity db = new DbEntity(); //创建对象实体,注意,这里需要对所有属性进行赋值(除了自动增长主键外),如果不赋值,则会数据库中会被设置为NULL(注意是否可空) var user = new User { Name = "bomo", Age = 21, Gender = "male" }; ... 阅读全文
posted @ 2013-09-21 16:11 bomo 阅读(29492) 评论(4) 推荐(10)
摘要:ASP.NET MVC 3 使用Forms身份验证身份验证流程一、用户登录 1、验证表单:ModelState.IsValid 2、验证用户名和密码:通过查询数据库验证 3、如果用户名和密码正确,则在客户端保存Cookie以保存用户登录状态:SetAuthCookie 1):从数据库中查出用户名和一些必要的信息,并把额外信息保存到UserData中 2):把用户名和UserData保存到FormsAuthenticationTicket 票据中 3):对票据进行加密 Encrypt 4):将加密后的票据保存到Cookie发送到客户端 4、跳转到登录前的页面二、... 阅读全文
posted @ 2013-09-09 14:18 bomo 阅读(24149) 评论(11) 推荐(21)
摘要:很早就听说正则表达式的强大,今天终于一睹它的真容,在这里记下学习时候的笔记,以便以后查看1、正则表达式 用于描述字符串规则的的特殊的字符(正则表达式本身是字符串,用来描述字符串的相关规则,用于与其他字符串进行匹配) 例如: 正则表达式:\bHttp\b 表示单词 Http,两边的\b表示单词的开始于结束 可以与"Here is a Http tag"匹配,但是不能与'", "HttpRequest", "XMLHttpRequest"等字符串匹配,2、元字符(meta character) 用于描述最基本的信息,常见 阅读全文
posted @ 2013-07-28 00:34 bomo 阅读(720) 评论(0) 推荐(0)
摘要:最近有用户说要把古诗词做成繁体的,搜寻了一下,发现网上关于简繁体转换的类基本都是基于TraditionalChineseToSimplifiedConverter和Microsoft Visual Basic.NET两个程序集来写的,于是就自己通过简繁体字对照表写了个转换类 public class Simplified2Traditional { #region private const string Data = @"啊啊阿阿埃埃挨挨哎哎唉唉哀哀皚皑癌癌藹蔼矮矮艾艾礙碍愛爱隘隘鞍鞍氨氨安安俺俺按按暗暗岸岸胺胺案案骯肮昂昂盎盎凹凹敖敖熬熬翱翱襖袄傲傲... 阅读全文
posted @ 2013-06-06 16:12 bomo 阅读(3132) 评论(0) 推荐(0)
摘要:LINQ(Language Integrated Query)全称基于关系数据的.NET语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能,它和Linq to xml、Linq to objects、Linq to dataset、Linq to entities等组成了强大的LINQ。 LINQ是C# 3.0引入的新特性,C#3.0也引入了其他一些新特性,以更好的使用LINQ,LinQ说白了就是使我们可以更方便更快捷的操作集合1、基础特性 1、自动属性 public class Student { public int Id { get; s... 阅读全文
posted @ 2013-05-08 17:24 bomo 阅读(1088) 评论(0) 推荐(1)
摘要:一到周末,就变得好伤感,似乎每个周末,P林去家教,发哥回家,张导到隔壁打机,宿舍留我一个人空荡荡,然后苦逼苦逼的写代码。越写越疼。。。前几天看到几张图片,感觉挺好看,是把图片转换为马赛克的效果,并在马赛克上打上边框,加上马赛克后变成另一种味道,其实,有码也不错 那个叫自己的才是我最好的朋友 手绘图片,有点十字绣的感觉冬天走了 最近在做图像处理,就顺便把程序给实现出来原理很简单 1、设置马赛克大小,边框宽度,边框颜色 2、根据马赛克大小,边框宽度,给图片重设大小,并计算出新图片的大小 3、在新图片中画出颜色和边框代码如下(这里使用之前发过的指针法操作图片PointerBitmap... 阅读全文
posted @ 2013-03-22 22:07 bomo 阅读(1106) 评论(0) 推荐(0)
摘要:.Net Framework 中提供了反射机制,可以再加载程序运行时,动态获取和加载程序集,并且可以获取到程序集的信息在程序集中,包含模块(Module),模块包含类型,类型包含成员,提供反射,我们可以查看到一个程序集的路径,命名空间,类。我们还可以对其进行操作可以对程序集的类进行实例化,掉用类中的方法等,就跟我们普通使用程序集一样反射机制通常有下面一些用途使用Assembly定义和加载程序集,加载在程序集清单中列出的模块,以及从此程序集中查找类型并创建该类型的实例。使用Module发现以下信息:包含模块的程序集以及模块中的类等。您还可以获取在模块上定义的所有全局方法或其他特定的非全局方法。使 阅读全文
posted @ 2013-03-16 02:04 bomo 阅读(15842) 评论(0) 推荐(7)
摘要:最近在做一个视频识别项目,需要用到视频处理,在codeproject上找到了一个关于对Avi的操作库,感觉不错,在这里把一些要点记录下来http://www.codeproject.com/Articles/7388/A-Simple-C-Wrapper-for-the-AviFile-LibraryAvi视频文件的编码有很多,这个库只支持部分Avi文件,有些Avi文件不支持,具体哪些不支持还没搞清楚AviFile库提供了 1、从视频流中图片的处理 2、视频中音频的处理 3、压缩和解压视频流1、使用 1、从视频读取图片,还有一些参数可以通过aviStream查看到,可以把当前流信息输出... 阅读全文
posted @ 2013-03-09 09:59 bomo 阅读(8553) 评论(5) 推荐(1)
摘要:一、表示颜色的方式有很多种,如RGB,CMYK,HSB,Hex等等 1、RGB:这种表示颜色由三原色构成,通过红,绿,蓝三种颜色分量的不同,组合成不同的颜色,例如,100%红+100%绿混合可以得到黄色,红绿蓝三种颜色叠加可以得到白色,基本上屏幕显示色彩都采用这种方式 2、CMYK:也称作印刷色彩模式,是一种依靠反光的色彩模式,主要用于印刷,和RGB类似,CMY是3种印刷油墨名称的首字母:青色Cyan、品红色Magenta、黄色Yellow。而K取的是black最后一个字母,之所以不取首字母,是为了避免与蓝色(Blue)混淆。从理论上来说,只需要CMY三种油墨就足够了,它们三个加在一起就应.. 阅读全文
posted @ 2013-03-06 14:32 bomo 阅读(13117) 评论(1) 推荐(3)
摘要:最近在学数字图像处理,发现原来学习数学还是很有用的,像很多人工智能的东西很多都用到了图像处理,数字图像处理设计的范围太广,我也是刚开始学习,这里把自己学到的一点一滴记录下来,以便以后查看翻阅这里把关于图像边缘识别的一些算法演示一下图像边缘识别的算法有很多,这里列举出下面几种算法 Robert算子,Sobel算子,Laplace算子,右下边缘抽出算法,prewitt算子,Robinson算子,Kirsch算子,Smoothed算子 关于算法说明在代码中有注释,这里就不啰嗦了,这里用到了之前的LockBitmap类,用于提高Bitmap的访问速度,类的定义在这里http://www.cnblo.. 阅读全文
posted @ 2013-03-04 15:05 bomo 阅读(2102) 评论(1) 推荐(1)
摘要:通过GDI+对图片数据进行处理,下面列出各个效果的算法对于读取图片的每个像素颜色的速度非常慢,这里使用LockBitmap类来对图片像素进行操作,LockBitmap类的定义看这里http://www.cnblogs.com/bomo/archive/2013/02/26/2934055.html1、旋转(90度,180度,270度) //旋转90,180,270 public Bitmap RotateImage(Bitmap bmp, int angle) { if (angle != 90 && angle != 180 &... 阅读全文
posted @ 2013-03-01 21:32 bomo 阅读(9892) 评论(0) 推荐(3)
摘要:很多时候我们需要用到引用其他程序集,有些程序集是.Net生成的,可以支持反编译,而C/C++程序集不支持反编译,不能再C#项目中直接引用,我们需要预先知道程序集中函数的签名,然后先声明为静态的函数,例如:引用test.dll,该程序集包含Add方法,返回两个整型数据的和 [DllImport(@"c:\test.dll")] private static extern int Add(int a, int b);然后再需要的时候使用 private void DoSomething() { int sum = Add... 阅读全文
posted @ 2013-03-01 10:12 bomo 阅读(9610) 评论(0) 推荐(4)
摘要:摘自:http://www.codeproject.com/Tips/240428/Work-with-bitmap-faster-with-Csharp#_rating在对Bitmap图片操作的时候,有时需要用到获取或设置像素颜色方法:GetPixel 和 SetPixel,如果直接对这两个方法进行操作的话速度很慢,这里我们可以通过把数据提取出来操作,然后操作完在复制回去可以加快访问速度其实对Bitmap的访问还有两种方式,一种是内存法,一种是指针法1、内存法 这里定义一个类LockBitmap,通过把Bitmap数据拷贝出来,在内存上直接操作,操作完成后在拷贝到Bitmap中 ... 阅读全文
posted @ 2013-02-26 19:27 bomo 阅读(13934) 评论(3) 推荐(5)
摘要:使用codeplex的GifCreatorhttp://gifcreator.codeplex.com来处理Gif文件引用库文件Gif.Components.dll1、把Gif文件转成Png文件 /// <summary> /// 把Gif文件转成Png文件,放在directory目录下 /// </summary> /// <param name="file"></param> /// <param name="directory"></param> /// <returns 阅读全文
posted @ 2013-02-26 08:39 bomo 阅读(7180) 评论(0) 推荐(0)
摘要:通过系统Graphics绘图把文字绘制到位图上,然后显示或保存起来,这里用定义该函数 /// <summary> /// 把文字转换才Bitmap /// </summary> /// <param name="text"></param> /// <param name="font"></param> /// <param name="rect">用于输出的矩形,文字在这个矩形内显示,为空时自动计算</param> /// <par 阅读全文
posted @ 2013-02-25 21:09 bomo 阅读(14185) 评论(2) 推荐(1)
摘要:夜间模式在手机上的应用很广泛,很多手机应用都添加了夜间模式的主题,但是在电脑上却很少有这样保护眼睛的主题,很多时候屏幕的背景颜色都是白色的,在晚上显得特别刺眼,如果可以调节屏幕光线的亮度的话,就可以让屏幕变暗,在一定程度上可以保护眼睛,但是在显示器上直接调节屏幕亮度显得特别麻烦,而Windows本身没有提供一些关于亮度的设置,也没有提供有关于显示器的一些编程接口,所以这方面的应用显得非常少,下面通过透明窗口,让屏幕加上一层蒙版达到调节屏幕明亮的目的,这个API找了好久才找到代码比较简单,注释都在代码上,直接上代码 public partial class MaskForm : F... 阅读全文
posted @ 2013-02-19 14:55 bomo 阅读(3072) 评论(3) 推荐(0)
摘要:学习多线程编程有一段时间了,这里对要点和用法做一下总结,这里侧重用法,基本概念就略过了1、简单回顾: 进程与线程:进程作为操作系统执行程序的基本单位,拥有应用程序的资源,进程包含线程,进程的资源被线程共享,线程不拥有资源 前台线程和后台线程:当所有前台线程关闭时,后台线程也会随着被关闭 挂起(Suspend)和唤醒(Resume):由于线程的执行顺序和程序的执行情况不可预知,所以使用挂起和唤醒容易发生死锁的情况,在实际应用中应该尽量少用 终止线程 Abort:抛出 ThreadAbortException 异常让线程终止,终止后的线程不可唤醒 Interrupt:抛出 ... 阅读全文
posted @ 2013-02-01 00:34 bomo 阅读(1044) 评论(0) 推荐(0)
摘要:HTTP定义了与服务器交互的不同方法,基本方法有GET,POST,PUT,DELETE,分别对于查,该,增,删。一般情况下我们只用到GET和POST,其他两种都也可以用GET和POST来实现,很多浏览器也只实现了GET和POST两种方法 GET:用户获取信息 安全的:不会对服务器上的数据进行修改,和破坏 幂等的:相同的请求所返回的结果相同 参数是通过Url来传输,接在Url后面中间用?分开,不同参数之间用&分开,下面表示传递两个参数param1和param2,值为value1和value2 http://songurl/index.htm?param1=value... 阅读全文
posted @ 2013-01-31 14:07 bomo 阅读(63102) 评论(2) 推荐(6)