木子屋 Dnawo's BLOG

分类:Win编程

共 358 篇

WinForm多线程编程及线程间控件赋值示例

若在线程中对TextBox控件赋值会出错,提示: 线程间操作无效: 从不是创建控件“textBox1”的线程访问它。 这时通过调用窗体的Invoke方法对TextBox控件进行赋值即可: .NET Framework 3.5+无需单独声明委托,可用自带的委托Action:

Entity Framework开发模式之Code First示例

1.创建实体类 Person.cs: Pet.cs: 2.创建上下文对象类 3.修改配置文件 增加数据库连接字符串节点: 4.数据增删改查示例 说明:虽称为Code First,但在实际使用时,大都使用Entity Framework Power Tools工具从现有数据库生成代码。

HttpWebResponse获取远程服务器返回的错误页面源码

当用HttpWebResponse抓取远程服务器某个页面源码时,若页面出错,返回状态码非200,HttpWebResponse会直接抛出错误: 怎么获取远程服务器返回的错误页面源码呢?将代码做如下更改即可: 参考资料 .HttpWebResponse远程服务器返回错误: (500) 内部服务器错误:http://www.cnblogs.com/cresuccess/archive/2009/12/09/1619977.html

预定义的类型“Microsoft.CSharp.RuntimeBinder.Binder”未定义或未导入

Visual Studio 2012新建控制台应用程序,目标框架.NET Framework 3.5,后又改为.NET Framework 4,编译时发现不能使用动态类型dynamic,错误信息如下: 预定义的类型“Microsoft.CSharp.RuntimeBinder.Binder”未定义或未导入 出错语句为: 解决方法 在项目文件(.csproj)的ItemGroup节点加入如下语句,重新打开项目即可:

Linq累加器函数Aggregate执行原理分析

重载1:public static TSource Aggregate(this IEnumerable source, Func func) 示例 结果 分析 参数a保存func函数上次执行结果,a初始值为集合第一个元素,集合元素从第二个开始依次传给b到func函数进行运算,最后返回a的值。 重载2:public static TAccumulate Aggregate(this IEnumerable source, TAccumulate seed, Func func) 示例 结果 分析 参数a保存func函数上次执行结果,a初始值为种子值,集合元素从第一个开始依次传给b到func函数进行运算,最后返回a的值。…

Linq多表Join实现及优化(方法语法)

有三张表要进行inner join查询,表结构如下: 参照两表Join语句,使用方法语法可以这么写: 这样虽可以达到要求,但每Join一张表,new中字段就得重复写一次,若返回字段多,书写麻烦,语句也非常长,经过测试,最终优化如下: 当然了,也可以用Linq查询语法来实现,那就简单多了:

Linq的SelectMany方法使用示例

在EF中,由于数据库表之间存在外键,类似下面的实体随处可见(对象有一个集合类型属性): 若要求页面按如下格式展示数据,试考虑如何写Linq语句: person1,pet1 person2,pet2 person3,pet3 简单的inner join可以用Join方法实现: 针对这种特殊结构的对象,还可以用SelectMany来实现: 这好像看不出优势,但若要实现left join,那就非用SelectMany不可了: SQL Server Profiler捕获对应sql语句:

C#令人迷惑的DateTime:世界标准时间还是本地时间?

先来看一段代码: 这让人搞不清楚DateTime的类型,当调用ToUniversalTime方法时,它似乎是本地时间,但调用ToLocalTime方法时,它又变成了世界标准时间(UTC) 。DateTime有个只读属性Kind,指示时间类型,输出看下: DateTimeKind.Unspecified表示时间既未指定为本地时间,也未指定为世界标准时间 -_-#,好在,C#有提供方法让指定DateTime类型: 这样声明一个本地时间显然比较麻烦,平时大都使用本地时间,不明白为什么不默认为本地时间,相比之下,Javascript就比较人性化,它的Date对象总是本地时间: