随笔分类 -  C#

About C#
winform实现图片的滑动效果
摘要:使用winform实现图片的滑动效果(类似网站首页图片滑动切换效果),结果实现了,但是效果其实不是很理想。也许有更好的方法。 Timer timerSlide = null; //当前初始化的PictureBox PictureBox box = null; //当前PictureBox PictureBox curBox = null; //下一个PictureBox PictureBox nx 阅读全文
posted @ 2019-09-27 18:03 Frank_LuYuan 阅读(2292) 评论(0) 推荐(0)
数据库对图片的存储和读取
摘要:数据库中关于二进制类型的介绍: binary 固定长度的二进制数据,其最大长度为 8,000 个字节。 varbinary 可变长度的二进制数据,其最大长度为 8,000 个字节。 image 可变长度的二进制数据,其最大长度为 2^31 - 1 (2,147,483,647) 个字节 二进制类型主 阅读全文
posted @ 2019-08-27 10:26 Frank_LuYuan 阅读(1813) 评论(0) 推荐(0)
ADO.NET 八(一个例子)
摘要:可视化方式绑定 DataGridView 控件(写的不详细,结合上一篇) 使用可视化数据绑定方式可以快速完成将数据表中的数据显示在 DataGridView 控件中的操作,并可以很容易地对绑定列的属性进行相关设置。(可以看到代码减少了很多) public partial class Form1 : 阅读全文
posted @ 2019-08-21 17:02 Frank_LuYuan 阅读(248) 评论(0) 推荐(0)
ADO.NET 七(一个例子)
摘要:通过一个完整的实例实现课程信息管理功能的操作,包括查询、修改、删除课程信息等操作。 1) 创建课程信息表 INSERT INTO StuCourse (name,credit,remark) VALUES ('English',3.00,'Good Good Study'); INSERT INTO 阅读全文
posted @ 2019-08-21 15:02 Frank_LuYuan 阅读(293) 评论(0) 推荐(0)
ADO.NET 六(DataRow DataColumn)
摘要:已经介绍了使用 SqlCommand 对象中的 ExecuteNonQuery 方法执行非查询 SQL 语句来实现对数据表的更新操作,使用 DataSet 对象也能实现相同的功能, 并且能节省数据访问时间。 每个 DataSet 都是由多个 DataTable 构成的,更新 DataSet 中的数据 阅读全文
posted @ 2019-08-20 16:41 Frank_LuYuan 阅读(454) 评论(0) 推荐(0)
ADO.NET 五(DataAdapter 与 DataSet)
摘要:在执行对表中数据的查询时还能将数据保存到 DataSet 中,但需要借助 DataAdapter 类来实现。在实际应用中,DataAdapter 与 DataSet 是在查询操作中使用最多的类。此外,还可以通过 DataSet 实现对表中数据的增加、修改、删除操作。 DataAdapter 与 Da 阅读全文
posted @ 2019-08-20 15:52 Frank_LuYuan 阅读(263) 评论(0) 推荐(0)
ADO.NET 四(DataReader)
摘要:DataReader 类概述 DataReader 类对应MSSQLSERVER在 System.Data.SqlClient 命名空间中,对应的类是 SqlDataReader,主要用于读取表中的查询结果,并且是以只读方式读取的(即不能修改 DataReader 中存放的数据)。 正是由于 Dat 阅读全文
posted @ 2019-08-20 12:02 Frank_LuYuan 阅读(255) 评论(0) 推荐(0)
ADO.NET 三(Command)
摘要:操作数据库需则要用到 Command 类中提供的属性和方法。下面来介绍一下如何使用 Command 类来操作数据表中的数据。 Command 类概述 在 System.Data.SqlClient 命名空间下,对应的 Command 类为 SqlCommand,在创建 SqlCommand 实例前必 阅读全文
posted @ 2019-08-20 11:38 Frank_LuYuan 阅读(318) 评论(0) 推荐(0)
ADO.NET 二(Connection)
摘要:C# 语言中 Connection 类是 ADO.NET 组件连接数据库时第一个要使用的类,也是通过编程访问数据库的第一步。 接下来了解一下 Connection 类中的常用属性和方法,以及如何连接 SQL Server 数据库。 Connection 类概述 Connection 类根据要访问的数 阅读全文
posted @ 2019-08-20 10:06 Frank_LuYuan 阅读(389) 评论(0) 推荐(0)
ADO.NET 一(概述)
摘要:在 C# 语言中 ADO.NET 是在 ADO 的基础上发展起来的,ADO (Active Data Object) 是一个 COM 组件类库,用于访问数据库,而 ADO.NET 是在 .NET 平台上访问数据库的组件。 ADO.NET 是以 ODBC (Open Database Connecti 阅读全文
posted @ 2019-08-20 09:41 Frank_LuYuan 阅读(418) 评论(0) 推荐(0)
线程三(Mutex)
摘要:C# 中 Mutex 类也是用于线程同步操作的类,例如,当多个线程同时访问一个资源时保证一次只能有一个线程访问资源。在 Mutex 类中,WaitOne() 方法用于等待资源被释放, ReleaseMutex() 方法用于释放资源。WaitOne() 方法在等待 ReleaseMutex() 方法执 阅读全文
posted @ 2019-08-19 16:08 Frank_LuYuan 阅读(217) 评论(0) 推荐(0)
线程二(Monitor)
摘要:Monitor 类的命名空间是 System.Threading,它的用法和 lock 本质是一样的。 使用 Monitor 类锁定资源的代码如下。 Monitor.Enter(object); try { //临界区代码 } finally { Monitor.Exit(object); } 在这 阅读全文
posted @ 2019-08-19 15:48 Frank_LuYuan 阅读(522) 评论(0) 推荐(0)
线程一(lock)
摘要:对于线程同步操作最简单的一种方式就是使用 lock 关键字,通过 lock 关键字能保证加锁的线程只有在执行完成后才能执行其他线程。 lock 的语法形式如下。 lock(object) { //临界区代码 } 这里 lock 后面通常是一个 Object 类型的值,也可以使用 this 关键字来表 阅读全文
posted @ 2019-08-19 15:08 Frank_LuYuan 阅读(199) 评论(0) 推荐(0)
interface Part4(接口中的多态)
摘要:使用接口实现多态 需要满足以下两个条件。 定义接口并使用类实现了接口中的成员。 创建接口的实例指向不同的实现类对象。 假设接口名称为 ITest,分别定义两个实现类来实现接口的成员,示例代码如下。 阅读全文
posted @ 2019-08-13 15:41 Frank_LuYuan 阅读(229) 评论(0) 推荐(0)
interface Part3(实现:显示和隐式)
摘要:1. 接口的实现实际上和类之间的继承是一样的,也是重写了接口中的方法,让其有了具体的实现内容。2. 但需要注意的是,在类中实现一个接口时必须将接口中的所有成员都实现,否则该类必须声明为抽象类,并将接口中未实现 的成员以抽象方式实现。 在 C# 语言中实现接口的具体语法形式如下。 class 类名 : 阅读全文
posted @ 2019-08-13 15:24 Frank_LuYuan 阅读(177) 评论(0) 推荐(0)
interface Part2(定义接口)
摘要:一. 在 C# 语言中,类之间的继承关系仅支持单重继承,而接口是为了实现多重继承关系设计的。二. 一个类能同时实现多个接口,还能在实现接口的同时再继承其他类,并且接口之间也可以继承。三. 无论是表示类之间的继承、还是类实现接口、接口与接口之间的继承,都使用“:”来表示。多个之间用英文逗号‘,’分隔。 阅读全文
posted @ 2019-08-13 14:42 Frank_LuYuan 阅读(241) 评论(0) 推荐(0)
interface Part1(接口详解)
摘要:1. 在日常生活中,手机、笔记本电脑、平板电脑等电子产品提供了不同类型的接口用于充电或者连接不同的设备。 不同类型接口的标准不一样,例如电压、尺寸等。 2. 在C#语言中,接口也会定义一种标准,如果需要使用接口,必须满足接口中所定义的内容。 3. 在C#语言中,类之间的继承关系仅支持单重继承,而接口 阅读全文
posted @ 2019-08-13 14:26 Frank_LuYuan 阅读(368) 评论(0) 推荐(0)
yield关键字
摘要:备注: 如果你在语句中使用 yield,则意味着它所处的方法、运算符或 get 访问器是迭代器。 yield 语句的两种形式: yield return <expression>; yield break; 1.使用 yield return 语句可一次返回一个元素。可通过使用 foreach 语句 阅读全文
posted @ 2019-08-13 11:50 Frank_LuYuan 阅读(260) 评论(0) 推荐(0)
扩展方法
摘要:扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型,而且不需要修改原本的类的程序代码。扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。它们的第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀。 要实现扩展方法十分简单, 阅读全文
posted @ 2019-08-13 10:21 Frank_LuYuan 阅读(580) 评论(0) 推荐(0)
委托、Action泛型委托、Func泛型委托、Predicate泛型委托的用法
摘要:一、举一委托场景:天气很热,二狗子想去买瓶冰镇可乐,但是二狗子很懒,于是他想找个人代他去,于是要有个代理人。 创建代理人之前先定义委托:public delegate string BuyColaDelegate(string drink); 创建代理人:BuyColaDelegate delega 阅读全文
posted @ 2019-08-09 15:16 Frank_LuYuan 阅读(335) 评论(1) 推荐(1)