高级编程(c#)
文章平均质量分 78
Knight94
这个作者很懒,什么都没留下…
展开
-
如何用C#来部署数据库
现在好多程序,都是与数据库相关的,因此在做安装的时候,部署数据库看似是一件很复杂的事情。其实就我个人而言,部署数据库是很简单,大致的思路如下:1. 用本身的DBMS来产生数据库创建的SQL脚本;2. 接下来就是写程序来执行SQL脚本,从而达到创建数据库的目的。 以下用一个举例来说明,数据库服务器用的是SQL Server。 首先要在数据库生成好的SQL脚本最前头,加入如原创 2006-03-18 09:50:00 · 8727 阅读 · 3 评论 -
如何用一个数据库的数据去更新另一个数据库的内容
数据库之间数据交换,是比较费时,也是比较麻烦的,人们在做类似操作的时候,不希望一条一条的去写SQL语句。那么我最近作了一个DEMO,通过使用DataAdapter+Dataset可以方便的完成数据库之间的更新操作。 我的例子是把Access数据库中的数据去更新SQL Server数据库,其中用到数据表的结构一样(这儿只是为了简化操作,并不是必要条件,其实只要两个数据库中数据表的字段要进原创 2006-05-01 13:01:00 · 17574 阅读 · 6 评论 -
浅谈八皇后问题
写这篇文章,是由于最近看到一篇帖子,要计算800个皇后。记得当初做八皇后问题的时候,要用一个二维矩阵来存棋盘状态,算法用的是比较直观的穷举,但是考虑要存一个800*800的棋盘状态,那么首先在资源上就处于劣势,因此在原先的算法进行修改,从而减少空间的使用。 简述一下八皇后问题,就是在8*8的棋盘上放置八个皇后,使得各个皇后之间不能相互吃掉,每个皇后可以吃掉横、竖、斜线这四条线内的任何子,这原创 2006-05-07 10:25:00 · 3016 阅读 · 1 评论 -
如何用C#做一个类似于桌面插件的程序
最近看到有人问如何做一个“桌面天气秀”类似的软件,开始我以为做这个东西很复杂,因为觉得至少要传递Message给Desktop。但事实上,一试之后发现做这个程序竟然很简单。 以下就把做的步骤列出来,供大家参考。首先,需要设置窗体样式,这里面要设置的有:l 设置FormBorderStyle为None;l 设置TopMost为false;l原创 2006-05-11 19:30:00 · 14393 阅读 · 10 评论 -
如何把多个文件写入到一个文件中去并能分解
对于一个文件的读写,其实很简单,就是用FileStream进行Read或者Write就行了。但是如何把多个文件写入到同一个文件,之后要能把这个文件进行还原成多个文件。那么光靠FileStream的Read和Write方法是不够的,首先你需要自行建立文件索引,来标明每个文件在当前文件的位置。 那么最近作了一个简单的DEMO,其中类的部分代码如下://-------------------原创 2006-05-17 09:15:00 · 4781 阅读 · 5 评论 -
借助WebService实现多线程上传文件
在WebService的帮助下,进行多线程上传文件是非常简单。因此我只做个简单的例子,那么如果想要实现此功能的朋友,可以在我的基础上进行扩展。 首先说说服务器端,只需要提供一个能允许多线程写文件的函数即可,具体代码如下。[WebMethod]public bool UploadFileData( string FileName, int StartPosition, byte[]原创 2006-10-12 19:47:00 · 17399 阅读 · 13 评论 -
怎么用C#制作印章
制作印章来说,主要是如何让字均匀的显示在弧线段上,那么一般的印章要么以圆或者椭圆为底图,不过这两者的算法大致相同,为了方便说明,如下就用相对简单的圆来举例说明,如果需要做椭圆的话,可以在我的基础上进行扩展,因为核心算法是一样的,相对于圆来说,椭圆求弧长以及各个字符的位置,这两点相对麻烦些,但是这两者都可找到相应的数学公式。 这里首先提一点,我这篇文章部分借鉴了codeproject的一个例原创 2006-11-04 19:15:00 · 12910 阅读 · 13 评论 -
如何使用RC4进行数据加减密
最近帮一个网友解决RC4加减密的问题,虽说在网上有类似的问题,但是对于中文解决不是很理想,因此我在别人的基础上进行修改,并且为了方便显示,把加密后的字符串用16进制来显示。 大致的代码如下://-------------------------- RC4 encrypt class ------------------------------------//------------原创 2006-07-03 09:32:00 · 5414 阅读 · 5 评论 -
如何使用Base64进行加密和解密(续)
由于以前文章在介绍Base64方法的时候,所提供的调用方法过于麻烦,而且接口不太直观,因此我最近在原有的基础上进行了修改。 具体代码如下://----------------------------- Base64 class --------------------------------------//--------------------------------------原创 2006-07-04 19:25:00 · 4836 阅读 · 3 评论 -
多线程断点续传研究之一
本人最近应网友之邀,在一篇文章的基础上去实现一个多线程断点续传下载文件的程序。但是在编写的过程中,发现问题多多。 原文地址为:http://dev.csdn.net/develop/article/64/64877.shtm 知道通过HttpWebRequest就可以进行多线程断点下载,是我不用考虑从Socket写起。 对于一个多线程断点续传程序,我大致认为只要考虑如下原创 2006-08-04 11:51:00 · 11004 阅读 · 2 评论 -
如何完成一个实现Pause和Continue这两个功能的Windows Service
如何实现一个Windows Service,我以前有篇文章进行介绍过,具体地址如下,如果想做这方面程序的话,可以先看它。http://blog.csdn.net/knight94/archive/2006/03/17/627298.aspx 但是对于一个Windows Service来说,经常是24小时运行,那么难免有时会进行类似于Pause,Continue,Stop以及Restar原创 2006-08-22 08:26:00 · 9779 阅读 · 4 评论 -
如何在C#中用弹出窗口来对DataGrid的某一列进行修改
DataGrid是可以绑定ComboBox来进行选择某一列的值,但是有时候选项太多,或者通过一列数据无法完全说明选项含义的时候,就希望来弹出一个窗口,来对子项进行更充分的说明,以供选择。 我下面的例子就是说明如何实现一个弹出窗口来对子项进行选择。首先,继承DataGridTextBoxColumn来定义自己的数据列,具体如下:public delegate string Popup原创 2006-04-14 13:52:00 · 11342 阅读 · 2 评论 -
如何动态调用DLL中类的方法以及属性
在C#中可以通过Assembly来动态加载DLL,然后由它创建类型,接着通过类型的InvokeMember方法来调用DLL中类的方法以及属性。 为了方便说明一下的方法,先说明一下DLL的代码,大致如下:using System;namespace clsTestDll{ /// /// Summary description for TestDll.原创 2006-04-10 14:37:00 · 11280 阅读 · 5 评论 -
如何用C#来部署数据库续
在前一篇《如何用C#来部署数据库》中写到的方法本身还有一个问题,就是如果数据库脚本中含有StoreProcedure的话,我给出的方法就无法执行,然后我再原有的基础上,作了如下修改,既能满足以前的脚本执行,也能完成含有StoreProcedure脚本的执行。 大致的修改是替换原先的CreateDB函数,具体代码如下: private bool CreateDB( ref原创 2006-03-19 10:23:00 · 7533 阅读 · 5 评论 -
如何对系统中的某个进程进行监控
最近看到一篇文章,就是如何对系统某个进程进行监控,并且当这个进程触发某些事件的时候,能进行相应。而且发现有人问这方面的问题,我就大致在其原有的基础进行如下的修改。 首先说明的一点,方法是基于WMI的。以下是我扩展类的代码说明://------------------------ProcessInfo Class------------------------------------原创 2006-03-21 14:51:00 · 7525 阅读 · 5 评论 -
如何用C#添加Access数据源
其实在.Net中可以直接通过文件方式访问Access数据库,但是有时候也需要把Access数据库设置成为数据源,供其它程序适用。那么在程序中如何添加Access数据源,则只要去修改注册表,就可以进行添加了。 以下是我封装的一个函数用来创建Access数据源,大致代码如下:using Microsoft.Win32; /// /// Create a原创 2006-03-23 18:32:00 · 9056 阅读 · 2 评论 -
如何使用Base64进行加密和解密
其实Base64的加密和解密的算法不是很复杂,首先是定义自己64位的密钥,64个字符是固定,但是顺序是可以随自己的设计而变化。例如:char[] BaseTable=new char[64]{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,原创 2006-03-17 10:59:00 · 9112 阅读 · 3 评论 -
如何在WinForm中对DataGrid进行分页显示
在网上大多数对DataGrid进行分页的例子都是Asp.net环境下的,其实在WinForm中也很简单。以下就是简单举一个例子。 首先,需要定义一个数据库存储过程,用来获得指定页的数据记录,大致的数据结构和存储过程如下(在SQL Server 2000下): 字段名原创 2006-03-23 12:33:00 · 16528 阅读 · 9 评论 -
探讨DataGrid的几种分页方法的优劣
对于给DataGrid进行分页的方法来说,目前我所见到的也就是三种。首先介绍一下举例的数据库结构(在SQL Server 2000下)。 字段名 类型原创 2006-03-27 13:13:00 · 4496 阅读 · 5 评论 -
如何在C#中轻松操作注册表
Visual Studio .Net以前的版本,要对注册表进行修改,则需要调用系统API,而现在则不用那么麻烦,因为.Net已经把注册表相关的操作封装到一个类中,调用的时候只要只要调用此类对象相应的属性或方法即可。 以下就注册表这个类进行说明。首先,要引入注册类所在的nampespace,如下: 接下来就是对注册表的操作,则第一步要像以前操作的那样,需要设定注册表的位置,例如:原创 2006-03-28 08:25:00 · 3949 阅读 · 2 评论 -
如何在C#去求矩阵的逆矩阵
最近有网友问我,怎么去求矩阵的逆,当时就按照以前线性代数上面方法告诉他算法,例如先求矩阵行列式的值,然后再求每一项的代数余子式,然后按照矩阵逆的公式去计算。但是等他向我求代码的时候,发现做法并不是那么简单,甚至用上面的思路,很难做出来。于是我参考网上求行列式值的算法,在上面的基础上完成了矩阵逆的算法。 算法的大致思想是通过行列式初等变换来求。 大致的代码如下:private原创 2006-04-04 13:08:00 · 8497 阅读 · 6 评论 -
如何把网络共享目录映射为本地驱动器(续)
有人对原来写的那篇文章提出了更深的问题,就是在不知道网络驱动器盘符的情况下,如何进行删除。起始要获得驱动器的盘符也不是件很复杂的事情,只要向WMI进行查询即可,大致的方法如下。 首先,要在工程中引用Windows.Management。 然后,就是用WMI进行查询,代码如下: public enum DRIVE_TYPE:int { RE原创 2006-03-31 09:43:00 · 8674 阅读 · 0 评论 -
多线程断点续传研究之二
上篇文章写完,由于整体思路是正确的,但是没有真正形成多线程下载,所以对本身的代码进行关键点的检查,尤其在一些操作web请求的地方,看看是否有什么问题,最后发现显示的关闭HttpWebResponse对象,能稍微有所改进。原文参看:http://blog.csdn.net/Knight94/archive/2006/08/04/1018305.aspx 那么修改后的类,大致代码如下:原创 2006-08-11 08:16:00 · 6948 阅读 · 10 评论