您的位置:首页 > 数据库

Sqlite学习(三) sqlite操作入门(高级语言操作)

2008-11-12 14:45 246 查看
显然,无论是命令行还是管理器操纵数据库,在实际应用中这是远远不够的。一般的项目开发中,不管数据库多么不可或缺,它也只能在应用程序的指挥下才能找到自己存在的意义,而“应用程序的指挥”,是由程序语言实现的,这就需要建立语言与数据库的关联,也就是要用程序语言来操纵数据库。

前面提到过,sqlite能跟很多程序语言相结合,比如Tcl、PHP、Java等。现以C#为例,看看在Ado.net框架下,sqlite是否八面玲珑到可以与C#语言肆意畅谈。

关于这个跨越对话,好像有几种渠道。这里只谈我会的那种。

先到http://sqlite.phxsoftware.com/网上下载Ado.net驱动,并安装。

接着,打开Microsoft Visual Studio 2008,新建项目--Windows 窗体应用程序。在工程中添加System.Data.SQLite.dll引用,如下:



在窗体上添加一个按钮,创建数据库和数据表。然后填写程序代码,最终代码如下:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.SQLite; //引用System.Data.SQLite命名空间

namespace SqliteTest

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void btnCreateDatabase_Click(object sender, EventArgs e)

{

try

{

// 连接数据库,若数据库不存在,创建它;

// 也可以先用SQLiteConnection.CreateFile("F://test.db");这行代码创建数据库再连接

SQLiteConnection sql_con = new SQLiteConnection("Data Source=F://test.db");

// 创建Sqlite的执行命令

SQLiteCommand sql_cmd = sql_con.CreateCommand();

// 具体命令

sql_cmd.CommandText = "CREATE TABLE [UserInfo] ("

+ "[UserName] [nvarchar] (20) PRIMARY KEY NOT NULL ,"

+ "[Password] [nvarchar] (50) NOT NULL ,"

+ "[MailAddress] [nvarchar] (50) NOT NULL );";

// 打开数据库连接

sql_con.Open();

// 执行命令

sql_cmd.ExecuteNonQuery();

// 关闭数据库连接

sql_con.Close();

}

catch (SQLiteException sqliteex)

{ //捕获异常并弹出提示

MessageBox.Show(sqliteex.Message);

}

}

}

}

运行后,点击窗体上的按钮,就会在F盘上生成一个名为test.db的数据库文件。用Sqlite Administrator查看,其数据库及表结构如下:



其实,安装了sqlite的Ado.net驱动后,可以直接在VS的服务器资源管理器里查看管理sqlite数据库。操作如下:
打开Visual Studio,在服务器资源管理器中添加连接,在添加连接对话框的数据源选项后点击更改(若数据源不是SQLite Database File时操作这步),弹出对话框中选择SQLite Database File,如下图:



然后在(回到的)添加连接对话框的Database选项处打开已存在的数据库或新建数据库,界面如下:



当用这种方法打开刚才程序创建的test.db数据库时,(如同操作sql server 数据库一样),效果如下:



这个小程序很简单,目的是测试C#是否能与sqlite连接、怎么连接,结果发现操作代码与连接SQL Server的一样,只是关键字些许不同。既如此,用代码操纵数据库(如查、删、改等)的结合应用程序的更复杂的功能,以及有关数据库的项目的层次架构等就不再提了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: