随笔分类 - C#.NET
专注C#.NET……目前已经四个月
摘要:Entity Framwork(实体框架,简称EF)是ORM(Object Relational Mapping,对象映射关系)的一个解决方案。EF允许项目将数据库的表映射为实体,并封装了操作方法,方便开发人员直接操作数据库。EF有三种开发模式,分别是:Database First(数据库先行): ...
阅读全文
摘要:(本文系张子阳《.net之美》读书笔记,文中多处引用书本内容)流首先简单介绍一下流的概念。流的最主要用途就是与应用程序外部的文件或数据源进行数据交互。考虑将一个TXT文件从D盘拷贝到C盘。它的拷贝过程应该是这样的:源文件在磁盘中,需要建立一个类似管道的东西将文件和内存中的应用程序连接起来,并且将文件按字节发送。创建一个byte[]数组用于存放字节。接下来,在C盘创建目标文件,同样通过一个管道一样的东西,将字节写入管道中,间接地写到文件中去。而流,就是这种管道,或者说起到管道的作用。下面简单学习一下代码: 1 Stream source = new FileStream("D:\\te
阅读全文
摘要:连接数据源Connection对象。Connection对象处于最顶层,是所有数据访问请求的关口。我们通过其暴露的属性进行配置。下面是一段连接字符串的示例。 1 if (string.IsNullOrEmpty(con.ConnectionString)) 2 { 3 con.ConnectionString = "Data Source=localhost\\sql08; Initial Catalog=ado_test;user ID=sa;password=test;";// Integrated Security=SSPI 4 ...
阅读全文
摘要:问题1:DataGridView绑定DataTable之后,在界面排序,选择若干行,此时选中的行的index与DataTable中的index不一致,这样若想要对其对应的行进行修改操作,将会造成错误。Sol: 首先将选中的DataGridView行的DataBoundItem属性转换为DataRowView, 然后通过对应的DataTable中的取出索引。1 DataRowView drv = dataGridView.SelectedRows[0].DataBoundItem as DataRowView;2 int index = dataTable.Rows.IndexOf(drv.Ro
阅读全文
摘要:最近遇到如何将输入在组合框(ComboBox)中的英文字符转换为大写的问题。在TextBox中,有CharacterCasing属性,直接设置为Upper即可。但是在ComboBox中没有此属性,所以要另找其他方法。直觉告诉我,一定是在KeyDown, KeyPress, KeyUp这三个事件中找到突破口,研究下去果然如此。三者触发的前后顺序如上所示,KeyDown和KeyPress,字符接收,未赋值到文本框里,而KeyUp的时候已经赋值了,所以应该从前两者入手。KeyDown里,提供有KeyValue, KeyData, KeyCode,第一个是整型数,后两个返回Keys 枚举类型。且三者都
阅读全文
摘要:动态链接库(DLL,Dynamic Link Library)和程序都属于程序集(Assembly)。C#编译器只是将C#代码转换成公共中间语言(Common Intermediate Language, CIL),VES(Virtual Execution System 虚拟执行系统,也称运行时)将CIL编译成机器码,这个过程称为即时编译(JT编译,Just-in-Time)。这些代码称为托管代码(Managed Code)。在数值范围内,decimal数字表示的十进制数都是完全准确的,因为其基数是十进制的。浮点数是基于二进制的,所以有误差。可以在数值最后加上m,表示decimal类型,加f
阅读全文
摘要:最近学习Stream类型,练习打开和保存TXT文件。首先要明白流概念,学过C++的应该清楚,这里就不多说了【其实我也不知道如何解释】。Stream类有很多子类,包括:FileStream类,主要用于读取磁盘上的文件或者向磁盘文件写入信息。有时,我们需要将程序中的一些数据存储到磁盘上或是读取配置文件中某些内容,在这里我们就会用该类。MemoryStream类,主要用于操作内存中的数据。比如说网络中传输数据时可以用流的形式,当我们收到这些流数据时就可以声明MemoryStream类来存储并且处理它们。BufferedStream类,主要也是用来处理流数据的,但是该类主要的功能是用来封装其他流类。为
阅读全文
摘要:最近在开发某项目,遇到这样一个需求:在一个账单记录的Table中,记录着每张账单及其金额,要求用户输入一个金额,从表中取出金额组合为该金额的账单【可能有很多个解,但只需要提供一例】。这题目看起来很简单,只是把数加起来判断,但仔细一想,难度不小。因为组合的个数没有确定,可以直接找到,即1个,或者2个,3个……N个组成,那么原先想要使用的for循环就无法使用了,因为不知道要嵌套多少层,而且跟后来的方法相比效率较低。后来在网上查了好久,查到了这原来这叫做子集和问题,是什么0-1背包之类的问题【数据结构学得一般T^T】需要用递归或回溯解决。因为我只需要求出一解,所以我选择了回溯法。递归将显示所有组合,
阅读全文