好久米写东西了,开学前再写一篇。最近老是在捣鼓数据库,一个寒假也没搞什么,就写成了一个纪念日提醒器和一个个人收支管理程序。
新接触C#的ADO.NET,遇到不少困难。开学前整理下,希望对大家有帮助。
首先一个是数据库的链接,我用的是ACCESS 2007(VISTA下SQL SERVER比较难搭建),手头还没有什么书介绍ACCESS 2007的连接字符串,网上找了很久(最后才知道到数据源里能找到的 =_=||),这里提供给大家(一般的连接输入这些就够了,如果要个密码或者高级点的连接就到完整字符串中截取吧):
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=××.accdb;
[完整的ACCESS 2007连接字符串展开下面查看]
需要注意的是如果别人的机器没有装ACCESS 2007,那么程序会抛出一个异常,说是没有能够找到ACE.OLEDB.12.0的数据库驱动。我在XP下调试的结果就是:XP在默认情况(即使装了ACCESS 2003)也没有办法是用2007版的数据库。所以如果你的程序想在XP上运行的话,最好还是做个MDB的数据库,用以前Microsoft Jet 4.0 OLEDB的数据库引擎来访问吧。
其次要注意的是C#在写SQL语句的时候多个匹配究竟用'*'还是用'%'。我们知道在ACCESS的正则中多个匹配应该是'*',但为什么我用OledbCommand没有办法执行呢?原因是在C#中编写的应该是SQL SERVER的语法,也就是说应该用'%',你的C#程序在编译时会自动将SQL语句转换为适合ACCESS的SQL语句。也就说,很多SQL SERVER支持的但ACCESS不支持的语句在编写时是不会报错的,但是一旦运行,就会出现问题。
还有就是创建表和索引的问题。以前学习的时候都是用MSSQL的,而且多用语句来执行。这次用ACCESS 2007的GUI模式还真是不习惯,这里给大家个建议,还是用命令创建比较好。顺便给大家推荐个数据库SQL-Lite。单从数据库能力来讲要比ACCESS强大(开源的,强大的),但也因为开源,数据库没有提供密码功能(但还是因为开源,网上能找到加密模块)。
最后要提醒大家的是:C#中的Calendar控件在不同的机器中显示起来是不一样的,-_-||,他会根据你.NET的版本的不同而不同(可别以为都是.NET 2.0就都一样了,你在安装安装.NET时选择的语言不通显示的结果都是不同的),有空的兄弟可以在虚拟机下试试,我就是因为VISTA和XP下界面不一样最后不得不重改界面……。
寒假这个礼拜就要结束了,把寒假学的东西小小的总结了下,文章的结尾把寒假的两个作品发上来晾晾,需要的朋友可以留下E-MAIL,这里就不提供源码了(放在这里怕丢人啊)。
代码下载地址:
SkyDrive:http://cid-856b7a1fbf560755.skydrive.live.com/browse.aspx/My%20free%20softwares/FinancialStatistics
一个是数据库,一个是源代码。两个文件都是rar压缩文件。