摘要: 在实际编程工程中,常常遇到这样的情况:DataTable并不是数据库中的,或者DataTable尚未写到数据库,或者从数据库中读出的DataTable已经在本地被改动,又没有写回数据库(可能还要作其他改动),在这些情况下,要查询DataTable中的数据,强大的SQL语言就派不上用场了。 有些.NET程序员采取在数据库中建立临时表等方法来解决这类查询问题。而我觉得这种方法不可行,其实只要用.NET类库中提供的DataView类的强大功能(主要是用它的RowFilter属性),就能方便地解决这类查询问题。下面就举一个具体的例子,来说明如何不用SQL语句,用DataView的RowFilter属. 阅读全文
posted @ 2013-08-07 17:50 王力之 阅读(1142) 评论(0) 推荐(0) 编辑
摘要: C#泛型列表List基本用法总结namespace SampleListT{ class Program { static void Main(string[] args) { //using System.Collections.Generic; 命名空间中的List //using System.Collections; 命名空间中的ArrayList //都实现了列表集合,一个是泛形集合,一个是非泛型的 //下面我们将Person对象加到集合中 Person p1 = new Person( "aladdin" , 20 ); P... 阅读全文
posted @ 2013-08-02 08:39 王力之 阅读(272) 评论(0) 推荐(0) 编辑
摘要: C#]参数化查询的一个重要问题使用参数化 DbCommand 的一个缺点是需要参数的代码将仅适用于支持相同语法的提供程序。OLEDB、SqlClient 和 Oracle 提供程序全部使用不同的语法。例如,用于命名和指定参数的 SQL 语法使用 @ 符号,OLEDB 参数语法需要使用问号 (?) 作为参数占位符,而 Oracle 提供程序使用冒号 (:)。string sqlstr = " select * from table where id=@id and name=@name ";System.Data.SqlClient.SqlParameter paramete 阅读全文
posted @ 2013-08-01 08:23 王力之 阅读(985) 评论(0) 推荐(0) 编辑
摘要: 这两天装oracle装的快抓狂了,网上看了很多帖子说的都不全,我总结下,欢迎斧正!PL/SQL目前不支持64位,所以需要用32位的client,但是db可以用64的,步骤如下1.安装10204_vista_w2k8_x64_production_db修改文件:\database\stage\prereq\db\refhost.xml添加修改文件:\database\install\oraparam.ini找到Windows=5.0,5.1,5.2,6.0添加,6.12.安装10203_vista_w2k8_x86_production_client修改文件:\client\Disk1\stag 阅读全文
posted @ 2013-08-01 08:16 王力之 阅读(254) 评论(0) 推荐(0) 编辑
摘要: C# DataSet、DataTable、DataRow、DataColumn 数据集应用大全一、数据集基本应用1.表格新增记录方式一:利用BindingSource的AddNew//新增记录,推荐使用,光标位置处于当前新增记录,且正处理编辑状态DataRow thisRow = ((DataRowView)usersBindingSource.AddNew()).Row;thisRow["OID"] = 5;thisRow["CNAME"] = "新增用户";thisRow["sex"] = "m&qu 阅读全文
posted @ 2013-07-30 20:18 王力之 阅读(939) 评论(0) 推荐(0) 编辑
摘要: C#的精彩世界还离不开其提供的丰富的操作符,按照操作数的个数,C#操作符可分为以下几类:一元操作符 :++x,x++,--y,z--二元操作符:x+y,x-y,x*y三元操作符:x=(x>a?x:a);如果从操作符的作用来看,C#操作符可以分为赋值操作符,算术操作符,关系操作符,逻辑操作符,位操作符和其它操作符。1.赋值操作符赋值操作符除基本的赋值操作符“=”之外还包括以下的组合赋值操作符:+= 如:intx;x+=5; 相当于:x=x+5;-= 如:inty,z=4;y-=z; 相当于:y=y-z;*= 如:doublex,y = 2.3;x*=y;相当于:x=x*y;/= 如:int 阅读全文
posted @ 2013-07-06 17:14 王力之 阅读(897) 评论(0) 推荐(0) 编辑
摘要: 使用Conditional属性代替#if和#endif我们可以使用#if/#endif从同一源码中生成不同的程序版本,比如debug和release版本,不过它并没有那么好用。#if/#endif很容易造成混乱,代码也难以阅读和调试。开发语言的设计者们意识到这个问题,并且为不同的开发环境创建了更好的生成工具。在C#中就添加了Conditional属性,它可以更好的完成工作。 conditional属性是在方法级别(method level)上被提供的,因此你必须将不同情况的代码分布到特定的方法中去。我们应当在创建不同版本程序块时使用conditional属性代替#if/#endif。有经验的程 阅读全文
posted @ 2013-06-17 16:03 王力之 阅读(677) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Runtime.InteropServices;调用Interaction.Beep();使用MessageBeep(unit uType):需添加using System.Runtime.InteropServices;public const int MB_ICONEXCLAMATION = 48;[DllImport("user32.dll")]public static extern bool MessageBeep(uint uType);MessageBeep( MB_ICONEXCLAMATION );调用B 阅读全文
posted @ 2013-06-06 22:12 王力之 阅读(3579) 评论(0) 推荐(0) 编辑
摘要: 继承:基类的可访问性 必须至少和类的 本身具有相同的可访问性。与C++ 不同,不存在 public private protected 继承。多态:virtual 不能和 static abstract override 修饰符同时使用。override 不能和 static abstract virtual 修饰符同时使用,并且重写方法只能用于重写基类的虚方法。 派生子类不能改变基类中声明的非虚方法的实现。多态,类型转换。重写:C类中声明了重写方法 F, 已重写了的基方法 通过检查 C 的各个基类来实现。使用base:使用 base. 可以访问当前类成员所隐藏的基类成员。访问虚函数时,通过 阅读全文
posted @ 2013-06-03 15:07 王力之 阅读(558) 评论(0) 推荐(0) 编辑
摘要: Generic是Framework 2.0的新元素,中文名字称之为“泛型” ,特征是一个带有尖括号的类,比如List< T>C#自定义泛型类用得最广泛,就是集合(Collection)中。实际上,泛型的产生其中一个原因就是为了解决原来集合类中元素的装箱和拆箱问题(如果对装箱和拆箱概念不明,请百度搜索)。由于泛型的使用,使得集合内所有元素都属于同一类,这就把类型不同的隐患消灭在编译阶段——如果类型不对,则编译错误。这里只讨论C#自定义泛型类。基本自定义如下:publicclassMyGeneric<T> ...{ privateTmember; publicvoidMet 阅读全文
posted @ 2013-05-26 08:11 王力之 阅读(671) 评论(0) 推荐(0) 编辑