摘要: C#编程的一个优点是程序员不需要关心具体的内存管理,尤其是垃圾收集器会处理所有的内存清理工作。虽然不必手工管理内存,但如果要编写高质量的代码,还是要理解后台发生的事情,理解C#的内存管理。本文主要介绍给变量分配内存时计算机内存中发生的情况。C#将数据分为两种:值数据类型和引用数据类型,这两种数据类型存储在内存中的不同的地方:值数据类型存储在堆栈中,而引用类型存储在内存的托管堆中。1、内存简介Windows使用一个系统:虚拟寻址系统。这个系统的作用是将程序可用的内存地址映射到硬件内存中的实际地址上。其实际结果就是32位的机子上每个进程都可以使用4GB的内存,当然,64位机这个数字就大了去了。这4 阅读全文
posted @ 2013-07-02 11:23 秋水惜朝 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 在数据库时候我设计了学生的分数为nvarchar(50),是为了在从TXT文件中读取数据插入到数据库表时候方便,但是在后期由于涉及到统计问题,比如求平均值等,需要int类型才可以,方法是:Convert(int,字段名)。例如:select avg(Convert(int,M_Score)) from temp建立视图,将视图当表示用CREATE VIEW temp ASselect StudentId, MAX(StudentScore) as M_Scorefrom T_StudentScores group by StudentId;--------------------------. 阅读全文
posted @ 2013-06-29 09:50 秋水惜朝 阅读(722) 评论(0) 推荐(0) 编辑
摘要: 1. 文件的存取数据文件1.txt为学生成绩统计表,要对它做一个统计工作。文件中若一个人有多个成绩,则取他们的最好成绩来统计,然后计算全班平均成绩;统计0-69、70-79、80-89、90-100分的人数;若不要85分以下的成绩,求一下平均成绩是多少;将学生名字和成绩另存为一个文件2.txt,注意,多个成绩取最好一个保存。说明:1.txt的格式是这样的:序号 学号 姓名 选修/必修 成绩设计数据库:如图其实在设计数据库时候应该让StudentScore为int字段,我设计成了string类型的,所以在后面的统计部分需要将某些字段转换为int,使用Convert(int,数据库字段名)第一步, 阅读全文
posted @ 2013-06-29 09:32 秋水惜朝 阅读(1396) 评论(0) 推荐(0) 编辑
摘要: (1)基本数据类型:OMG IDL基本数据类型包括short、long和相应的无符号(unsigned)类型,表示的字长分别为16、32位。(2)浮点数类型:OMG IDL浮点数类型包括float、double和long double类型。其中float表示单精度浮点数,double表示双精度浮点数,long double表示扩展的双精度浮点数。(3)字符和超大字符类型:OMG IDL定义字符类型char为面向字节的码集中编码的单字节字符; 定义类型wchar为从任意字符集中编码的超大字符。(4)逻辑类型:用boolean关键字定义的一个变量,取值只有true和false。(5)八进制类型:用 阅读全文
posted @ 2013-06-25 14:59 秋水惜朝 阅读(689) 评论(0) 推荐(0) 编辑
摘要: int intA = 0; 1.intA =int.Parse(str); 2.int.TryParse(str, out intA); 3.intA = Convert.ToInt32(str);以上都可以,其中 1和3 需要try{}异常,2不需要。 阅读全文
posted @ 2013-06-22 00:29 秋水惜朝 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 在将txt文本格式的数据导入到数据库中时候,使用的是SqlBulkCopy。但是出现了多处错误,在网上查到得资料如下:错误一:来自数据源的 String 类型的给定值不能转换为指定目标列的类型 nvarchar。还有其他的错误如:AddTime不能为DBNull (这个应该是目标表中AddTime要求不许为null),哈哈,错误多了,都忘记了。。。可能的原因有两种可能是有"'"(单引号),替换成““”(双引号)。可能是目标表字段的长度比要导入的数据长度小。错误二:给定的 ColumnMapping 与源或目标中的任意列均不匹配。可能的原因1.源数据的字段名称和目标数 阅读全文
posted @ 2013-06-22 00:27 秋水惜朝 阅读(941) 评论(0) 推荐(0) 编辑
摘要: 练习:部门管理。Id,Name(部门名称),IsDeleted。婚姻状况,性别,学历,政治面貌。这些值比较固定,一般不需要编辑的都记到T_IdName表中,通过一个Category(类别)字段来表示类别,再有一个Name字段。 阅读全文
posted @ 2013-06-19 11:02 秋水惜朝 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 1、装箱和拆箱是一个抽象的概念 2、装箱是将值类型转换为引用类型 ;拆箱是将引用类型转换为值类型利用装箱和拆箱功能,可通过允许值类型的任何值与Object 类型的值相互转换,将值类型与引用类型链接起来 例如: int val = 100; object obj = val; Console.WriteLine (“对象的值 = {0}", obj); 这是一个装箱的过程,是将值类型转换为引用类型的过程 int val = 100; object obj = val; int num = (int) obj; Console.WriteLine ("num: {0}" 阅读全文
posted @ 2013-06-18 13:45 秋水惜朝 阅读(187) 评论(0) 推荐(0) 编辑
摘要: Stringbuilder类是直接用于字符串操作的类,打个比方把(1)string aa="123456";(2)aa+="789";(3)StringBuilder text=new StringBuilder("123456",12);(4)text.Append("789");如果你输出aa,和text 你会发现他们的输出内容是一样的。但是aa的操作过程实际上是:首先在内存中分配一个地址空间,空间大小是6。然后执行 aa+="789";的操作,该过程是连接字符串,“123456”和“789 阅读全文
posted @ 2013-06-18 13:42 秋水惜朝 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 第一步:新建一个文件夹为SystemMgr,并为数据库T_Operator添加两个字段RealName,nvarchar(50),不允许为空,IsLocked bit 不允许为空。在Operator.cs中添加字段,代码如下: public string RealName { get; set; } public bool IsLocked { get; set; }并修改OperatorDAL.cs中的相关代码。在SystemMgr下新建一个窗体,OperatorListUI.xaml.代码如下:<Window x:Class="HRMSys.UI.SystemMgr.Ope 阅读全文
posted @ 2013-06-18 13:40 秋水惜朝 阅读(278) 评论(0) 推荐(0) 编辑