下面给出了使用C# 开发的一个压缩ACCESS数据库的程序
像FolderBrowserDialog(用于浏览选择文件夹的对话框)、MessageBox(消息处理对话框)、DirectoryInfo(目录信息,可用于创建、检测是否存在等对目录的操作)、FileInfo(文件信息,可用于文件的检测、文件信息的获取、复制等操作)、DataGridView(数据表格控件,用于显示文件信息列表数据)、DataRowView(对一些数据源信息进行筛选,排序)、System.Diagnostics.Process.Start(启动其它程序打开文件夹目录),下面就依次介绍一下在此软件开发中我都使用到以上控件、对象的哪些内容。
一、FolderBrowserDialog(文件夹浏览对话框),在此软件中用于打开选择数据库根目录或打开创建、选择备份目录,下面是两处位置的代码详细介绍。
1.选择数据库目录,在此处不需要新建文件夹,因此屏蔽新建文件夹按钮。
C#代码
FolderBrowserDialog df = new FolderBrowserDialog();
//设置文件浏览对话框上的描述内容
  ......
下面给出了使用C# 开发的一个压缩ACCESS数据库的程序
像FolderBrowserDialog(用于浏览选择文件夹的对话框)、MessageBox(消息处理对话框)、DirectoryInfo(目录信息,可用于创建、检测是否存在等对目录的操作)、FileInfo(文件信息,可用于文件的检测、文件信息的获取、复制等操作)、DataGridView(数据表格控件,用于显示文件信息列表数据)、DataRowView(对一些数据源信息进行筛选,排序)、System.Diagnostics.Process.Start(启动其它程序打开文件夹目录),下面就依次介绍一下在此软件开发中我都使用到以上控件、对象的哪些内容。
一、FolderBrowserDialog(文件夹浏览对话框),在此软件中用于打开选择数据库根目录或打开创建、选择备份目录,下面是两处位置的代码详细介绍。
1.选择数据库目录,在此处不需要新建文件夹,因此屏蔽新建文件夹按钮。
C#代码
FolderBrowserDialog df = new FolderBrowserDialog();
//设置文件浏览对话框上的描述内容
  ......
http://www.tongyi.net/article/20031101/200311013786.shtml
所谓的数据传输,其实是指SQLServer访问Access、Excel间的数据。
为什么要考虑到这个问题呢?
由于历史的原因,客户以前的数据很多都是在存入在文本数据库中,如Acess、Excel、Foxpro。现在系统升级及数据库服务器如SQLServer、ORACLE后,经常需要访问文本数据库中的数据,所以就会产生这样的需求。前段时间出差的项目,就是面临这样的一个问题:SQLServer和VFP之间的数据交换。
要完成标题的需要,在SQLServer中是一件非常简单的事情。
通常的可以有3种方式:1、DTS工具 2、BCP 3、分布式查询
DTS就不需要说了,因为那是图形化操作界面,很容易上手。
这里主要讲下后面两们,分别以查、增、删、改作为简单的例子:
下面废话就不说了,直接以T-SQL的形式表现出来。
一、SQLServer和Access
1、查询Access中数据的方法:
select * from OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from serv_user')
或
select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="c:\DB2.mdb";User ID=Admin;Password=')...serv_user
2、从SQLServer向Access写数据:
inser ......
http://www.tongyi.net/article/20031101/200311013786.shtml
所谓的数据传输,其实是指SQLServer访问Access、Excel间的数据。
为什么要考虑到这个问题呢?
由于历史的原因,客户以前的数据很多都是在存入在文本数据库中,如Acess、Excel、Foxpro。现在系统升级及数据库服务器如SQLServer、ORACLE后,经常需要访问文本数据库中的数据,所以就会产生这样的需求。前段时间出差的项目,就是面临这样的一个问题:SQLServer和VFP之间的数据交换。
要完成标题的需要,在SQLServer中是一件非常简单的事情。
通常的可以有3种方式:1、DTS工具 2、BCP 3、分布式查询
DTS就不需要说了,因为那是图形化操作界面,很容易上手。
这里主要讲下后面两们,分别以查、增、删、改作为简单的例子:
下面废话就不说了,直接以T-SQL的形式表现出来。
一、SQLServer和Access
1、查询Access中数据的方法:
select * from OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from serv_user')
或
select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="c:\DB2.mdb";User ID=Admin;Password=')...serv_user
2、从SQLServer向Access写数据:
inser ......
今天花了2个小时间,在网上发现一大堆的解答,但都不凑效,自己摸索,终于搞定这个很恶心的问题。
第一步:进入/var目录 执行命令 chmod 755 ./www/ -R ,也就是把WEB目录下的文件的访问权限适当打开
第二步:sudo cd /etc/apache2/sites-enabled/,发现里面有几个目录,比如我的有 000-default,输入sudo gedit /etc/apache2/sites-enabled/000-default,用gedit打开这个文件,然后修改
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
保存后退出。
第三步:sudo /etc/init.d/apache2 restart ,重启apache ,OK。 ......
在编写自己的dll程序的时候,先开始在调用dll的exe上出现(AVIDLL.DLL): 0xC0000005: Access Violation,不是很明白,为什么会出现这个问题。
在内部进行调试的时候发现,是调用了new操作符的缘故。
很不理解,在dll中调用new操作符会出现这么一个问题,网络上搜索,在微软msdn论坛(具体地址:http://forums.msdn.microsoft.com/zh-CN/vclanguage/thread/951a04be-6b52-4617-b396-9c35e3755759/)上搜索到相关问题。
于是按照说明,将dll的生成方式修改为"共享mfc方式"
project properties -> general -> Project Defaults->Use of MFC
To set the properties "Use MFC In A Shared DLL "
另外,在网上也发现另外一篇,console方面的, 解决办法:使用c runtime library的动态链接版本(在你的console工程中设置忽略所有的默认链接库,然后链接到msvcrt.lib就可以了)(具体地址:http://www.poptool.net/software/p606/A60674501.shtml)
调试,发现问题解决,感谢上面发布的兄弟们!
OK!
......
C#中访问关键字(access keyword)有两个:base、this
1.base
用于从派生类中访问基类的成员,包括:
a.调用基类上已被其它方法重写(override)的方法。
b.指定创建派生类实例时应调用的基类构造函数。
注意:对基类的访问只能在构造函数、实例方法或实例属性访问器中进行。
从静态方法中使用base关键字是错误的。
2.this
引用当前对象(为该对象调用了方法),this关键字可用于从构造函数、实例方法和实力访问器中访问成员。
this的一般用途:
a.限定被相似的名称隐藏的成员。
b.将对象作为参数传递到其它方法。
c.声明索引器。
......
C#中访问关键字(access keyword)有两个:base、this
1.base
用于从派生类中访问基类的成员,包括:
a.调用基类上已被其它方法重写(override)的方法。
b.指定创建派生类实例时应调用的基类构造函数。
注意:对基类的访问只能在构造函数、实例方法或实例属性访问器中进行。
从静态方法中使用base关键字是错误的。
2.this
引用当前对象(为该对象调用了方法),this关键字可用于从构造函数、实例方法和实力访问器中访问成员。
this的一般用途:
a.限定被相似的名称隐藏的成员。
b.将对象作为参数传递到其它方法。
c.声明索引器。
......
新建表:
create table [表名]
(
[自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,
[字段1] nVarChar(50) default '默认值' null ,
[字段2] ntext null ,
[字段3] datetime,
[字段4] money null ,
[字段5] int default 0,
[字段6] Decimal (12,4) default 0,
[字段7] image null ,
)
删除表:
Drop table [表名]
插入数据:
INSERT INTO [表名] (字段1,字段2) VALUES (100,'51WINDOWS.NET')
删除数据:
DELETE from [表名] WHERE [字段名]>100
更新数据:
UPDATE [表名] SET [字段1] = 200,[字段2] = '51WINDOWS.NET' WHERE [字段三] = 'HAIWA'
新增字段:
ALTER TABLE [表名] ADD [字段名] NVARCHAR (50) NULL
删除字段:
ALTER TABLE [表名] DROP COLUMN [字段名]
修改字段:
ALTER TABLE [表名] ALTER COLUMN [字段名] NVARCHAR (50) NULL
重命名表:(Access 不支持)
EXECUTE sp_rename '表名', '新表名', 'OBJECT'
新建约束:
ALTER TABLE [表名] ADD CONSTRAINT 约束名 CHECK ([约束字段] <= '2000-1-1')
删除约束:
ALTER TABLE [表名] DROP CONSTRAINT 约束名
新建默认值
ALTER TABLE [表名] ADD CONSTRAINT 默认值名 DEFAULT ......
新建表:
create table [表名]
(
[自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,
[字段1] nVarChar(50) default '默认值' null ,
[字段2] ntext null ,
[字段3] datetime,
[字段4] money null ,
[字段5] int default 0,
[字段6] Decimal (12,4) default 0,
[字段7] image null ,
)
删除表:
Drop table [表名]
插入数据:
INSERT INTO [表名] (字段1,字段2) VALUES (100,'51WINDOWS.NET')
删除数据:
DELETE from [表名] WHERE [字段名]>100
更新数据:
UPDATE [表名] SET [字段1] = 200,[字段2] = '51WINDOWS.NET' WHERE [字段三] = 'HAIWA'
新增字段:
ALTER TABLE [表名] ADD [字段名] NVARCHAR (50) NULL
删除字段:
ALTER TABLE [表名] DROP COLUMN [字段名]
修改字段:
ALTER TABLE [表名] ALTER COLUMN [字段名] NVARCHAR (50) NULL
重命名表:(Access 不支持)
EXECUTE sp_rename '表名', '新表名', 'OBJECT'
新建约束:
ALTER TABLE [表名] ADD CONSTRAINT 约束名 CHECK ([约束字段] <= '2000-1-1')
删除约束:
ALTER TABLE [表名] DROP CONSTRAINT 约束名
新建默认值
ALTER TABLE [表名] ADD CONSTRAINT 默认值名 DEFAULT ......