目录
前言
这里演示一个体现
SQLite数据库基本操作的例子。这个例子大致分为以下五步:(1)创建一个数据库文件;(2)打开数据库文件;(3)创建数据库表;(4)插入数据;(5)显示数据。
提示:以下是本篇文章正文内容,下面案例可供参考
一、创建一个数据库文件
//创建一个空的数据库
void createNewDatabase ( )
{
//当数据库文件不存在,创建一个空的数据库
if ( !File.Exists ( "MyDatabase.db" ) )//MyDatabase.db为数据库文件名称
{
SQLiteConnection.CreateFile ( "MyDatabase.db" );
}
}
二、打开数据库文件
//打开数据文件
void connectToDatabase ( )
{
m_dbConnection = new SQLiteConnection ( "Data Source=MyDatabase.db;Version=3;" );//Data Source→源数据库文件;Version=3→版本为3.
m_dbConnection.Open ( );//链接数据库文件
}
三、创建数据库表
//在数据库中创建一个table
void createTable ( )
{
string forSQL = "select * from salary; ";//表名称为salary
SQLiteCommand command = new SQLiteCommand ( forSQL, m_dbConnection );
//这样做的目的是为了方便程序可以再次运行
//当表存在
try
{
command.ExecuteNonQuery ( );
}
//当表不存在并报错时候,创建表
catch ( Exception )
{
string sql = "create table salary (name varchar(10), num int)";
SQLiteCommand newCommand = new SQLiteCommand ( sql, m_dbConnection );
newCommand.ExecuteNonQuery ( );
}
}
四、插入数据
//写入数据到表
void writeTable ( )
{
string sql = "insert into salary (name, num) values ('张三', 8000)";
SQLiteCommand command = new SQLiteCommand ( sql, m_dbConnection );
command.ExecuteNonQuery ( );
sql = "insert into salary (name, num) values ('李四', 12000)";
command = new SQLiteCommand ( sql, m_dbConnection );
command.ExecuteNonQuery ( );
sql = "insert into salary (name, num) values ('王五', 18000)";
command = new SQLiteCommand ( sql, m_dbConnection );
command.ExecuteNonQuery ( );
}
五、显示数据
//使用sql查询语句,并显示结果
void showSalaryNum ( )
{
string sql = "select * from salary order by num desc";
SQLiteCommand command = new SQLiteCommand ( sql, m_dbConnection );
SQLiteDataReader reader = command.ExecuteReader ( );
while ( reader.Read ( ) )
Console.WriteLine ( "Name: " + reader [ "name" ] + "\tNum: " + reader [ "num" ] );
Console.ReadLine ( );
}
总结
1、在程序引用,添加System.Data.SQLite.dll,在添加“using System.Data.SQLite;”
2、本例使用的.Net Framwork 4.5
3、!File.Exists ( "MyDatabase.db" )中需要添加using System.IO;
4、下面是程序运行后效果:
5、下面是全部代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SQLite;//所引用的为1.0116.0 版本,建议使用框架4.5
using System.IO;//!File.Exists ( "MyDatabase.db" )
using System.Diagnostics;
namespace ConsoleSQLite
{
class Program
{
//数据库连接
SQLiteConnection m_dbConnection;
static void Main ( string [] args )
{
Program p = new Program ( );
}
public Program ( )
{
createNewDatabase ( );//创建一个数据库文件
connectToDatabase ( );//链接数据库文件
createTable ();//创建数据库表
writeTable ( );//写入数据到表
showSalaryNum ( );//显示内容
}
//创建一个空的数据库
void createNewDatabase ( )
{
//当数据库文件不存在,创建一个空的数据库
if ( !File.Exists ( "MyDatabase.db" ) )//MyDatabase.db为数据库文件名称
{
SQLiteConnection.CreateFile ( "MyDatabase.db" );
}
}
//打开数据文件
void connectToDatabase ( )
{
m_dbConnection = new SQLiteConnection ( "Data Source=MyDatabase.db;Version=3;" );//Data Source→源数据库文件;Version=3→版本为3.
m_dbConnection.Open ( );//链接数据库文件
}
//在数据库中创建一个table
void createTable ( )
{
string forSQL = "select * from salary; ";//表名称为salary
SQLiteCommand command = new SQLiteCommand ( forSQL, m_dbConnection );
//这样做的目的是为了方便程序可以再次运行
//当表存在
try
{
command.ExecuteNonQuery ( );
}
//当表不存在并报错时候,创建表
catch ( Exception )
{
string sql = "create table salary (name varchar(10), num int)";
SQLiteCommand newCommand = new SQLiteCommand ( sql, m_dbConnection );
newCommand.ExecuteNonQuery ( );
}
}
//写入数据到表
void writeTable ( )
{
string sql = "insert into salary (name, num) values ('张三', 8000)";
SQLiteCommand command = new SQLiteCommand ( sql, m_dbConnection );
command.ExecuteNonQuery ( );
sql = "insert into salary (name, num) values ('李四', 12000)";
command = new SQLiteCommand ( sql, m_dbConnection );
command.ExecuteNonQuery ( );
sql = "insert into salary (name, num) values ('王五', 18000)";
command = new SQLiteCommand ( sql, m_dbConnection );
command.ExecuteNonQuery ( );
}
//使用sql查询语句,并显示结果
void showSalaryNum ( )
{
string sql = "select * from salary order by num desc";
SQLiteCommand command = new SQLiteCommand ( sql, m_dbConnection );
SQLiteDataReader reader = command.ExecuteReader ( );
while ( reader.Read ( ) )
Console.WriteLine ( "Name: " + reader [ "name" ] + "\tNum: " + reader [ "num" ] );
Console.ReadLine ( );
}
}
}