‘数据库’ 分类的存档

我们使用vs2010开发基于SQLite的应用程序时,发现会报出兼容性异常如下: System.IO.FileLoadException: Mixed mode assembly is built against version ‘v2.0.50727′ of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information. 我们只需要在应用程序配置文件configuration节点加入 即可解决问题。允许旧的应用程序绑定到新的版本之上。

2010年3月16日09:29 1 条评论

最近做的项目需要在客户端使用一个本地数据库来存放数据,想过使用Access,不过Access实在是太难用了,偶然间搜到了一个叫SQLite的开源数据库,基于本地环境就能运行,而且还是关系型数据库,可以使用标准的SQL语言,支持视图、事物等,实在是太好了。。。而且有很多语言(如我们的c#)对它提供了很好的支持。 今天,介绍一下这个数据库的使用。 首先,下载数据库安装包,很小只有3M多。 http://sourceforge.net/projects/sqlite-dotnet2/files/SQLite%20for%20ADO.NET%202.0/ 下载完成后进行安装,没什么可说的一路回车就行。需要注意的是最后,需要选择数据库设计IDE,一定要勾上。 安装完成。。。现在,我们做个简单的项目。 我们先新建一个Winform项目,打开服务器资源管理器,如果没有可以从这里找到 下面,我们新建一个数据库名称为Sample.db,右键添加链接 在更改数据源对话框中选择SQLite Database File,单击确定 我们在添加连接窗口,选择New新建一个数据库文件Sample.db 单击确定,数据库建好了,我们现在来建表,还说在服务器资源管理器窗口中,Tables标签中右键选择添加新表 现在和SqlServer差不多的方式为表添加字段 好了现在,数据库和表都建立好了,我们现在来编写代码。 对于插入数据使用下面代码 对于查询数据使用下面代码 运行一下。。。看看效果 这个例子非常简单,SQLite在数据库开发过程中除了连接字符串之外,跟SQLServer几乎是一样的,而且这个数据库在性能上也是很不错的,跟Access比,性能还是功能都远远超过了Acces, 推荐大家使用。代码下载

2010年2月8日11:18 5 条评论

游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次以行或者多行前进或向后浏览数据的能力。我们可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理。 一、游标的组成 游标包含两个部分:一个是游标结果集、一个是游标位置。 游标结果集:定义该游标得SELECT语句返回的行的集合。游标位置:指向这个结果集某一行的当前指针。 二、游标概述 游标是基于Declare Cursor 语法,主要用于Transaction-SQL脚本、存储过程以及触发器中。Transaction-SQL游标在服务器处理由客户端发送到服务器的Transaction-SQL语句。 在存储过程或触发器中使用Transaction-SQL游标的过程为: 1. 声明Transaction-SQL变量包含游标返回的数据。为每个结果集列声明一个变量。声明足够大的变量来保存列返回的值,并声明变量的类型为可从数据类型隐式转换得到的数据类型。 2. 使用Declare Cursor语句将Transaction-SQL游标与Select语句相关联。还可以利用Declare Cursor定义游标的只读、只进等特性。 3. 使用Open语句执行Select语句填充游标。 4. 使用Fetch Into语句提取单个行,并将每列中得数据移至指定的变量中。注意:其他Transaction-SQL语句可以引用那些变量来访问提取的数据值。Transaction-SQL游标不支持提取行块。 5. 使用Close语句结束游标的使用。注意:关闭游标以后,该游标还是存在,可以使用Open命令打开继续使用,只有调用Deallocate语句才会完全释放。 三、游标的生命周期 游标的生命周期包含有五个阶段:声明游标、打开游标、读取游标数据、关闭游标、释放游标。 声明游标是为游标指定获取数据时所使用的Select语句,声明游标并不会检索任何数据,它只是为游标指明了相应的Select 语句。 Declare 游标名称 Cursor 参数 声明游标的参数 1. Local与Global:Local表示游标的作用于仅仅限于其所在的存储过程、触发器以及批处理中、执行完毕以后游标自动释放。Global表示的是该游标作用域是整个会话层。由连接执行的任何存储过程、批处理等都可以引用该游标名称,仅在断开连接时隐性释放。 2. Forward_only与Scroll:前者表示为只进游标,后者表示为可以随意定位。默认为前者。 3. Static、Keyset与Dynamic: 第一个表示定义一个游标,其数据存放到一个临时表内,对游标的所有请求都从临时表中应答,因此,对该游标进行提取操作时返回的数据不反映对基表所作的修改,并且该游标不允许修改。Keyset表示的是,当游标打开时,键集驱动游标中行的身份与顺序是固定的,并把其放到临时表中。Dynamic表示的是滚动游标时,动态游标反映对结果集内所有数据的更改。 4. Read_only 、Scroll_Locks与Optimistic:第一个表示的是只读游标,第二个表示的是在使用的游标结果集数据上放置锁,当行读取到游标中然后对它们进行修改时,数据库将锁定这些行,以保证数据的一致性。Optimistic的含义是游标将数据读取以后,如果这些数据被更新了,则通过游标定位进行的更新与删除操作将不会成功。 标准游标: Declare MyCursor Cursor For Select * From Master_Goods 只读游标 Declare MyCusror Cursor For [...]

2010年1月4日15:55 2 条评论