sqllite 数据类型asp可以用吗?

ASP.NET(C#)中操作SQLite数据库实例
字体:[ ] 类型:转载 时间:
最近项目中有使用到SQLite数据库,于是查找资料,编写了一个ASP.NET基于C#语言的SQLite数据库操作实例.大家看代码就可以看懂了,和以往使用ADO.NET操作SQL数据库类似.
要想在ASP.NET项目中使用SQLite数据库,先需下载一个ADO.NET 2.0 SQLite Data Provider,下载地址为:,下载后安装完毕后,该安装程序自动在在系统注册(即可在"添加引用"中看到所安装的Provider).&&&&
&&&& 然后,在项目中添加上图所选项即可.
&&&& aspx页面仅包含一按钮btnTest,在页面aspx.cs页面中,引入命名空间,贴入以下类似代码即可.&&&&
代码如下:using S using System.D using System.Web.UI.WebC using System.Data.SQL public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnTest_Click(object sender, EventArgs e) { SQLiteConnection.ClearAllPools(); SQLiteConnection.CreateFile(Server.MapPath("~") + "/UserData.dbx"); SQLiteConnection conn = new SQLiteConnection("Data Source=" + Server.MapPath("~" + "/UserData.dbx")); conn.Open(); Response.Write("打开数据库成功~~&br /&"); SQLiteCommand cmd = new SQLiteCommand(); <mandText = "create table Users (UserID int primary key,UserName varchar(100) not null,UserPassword varchar(100) not null)"; cmd.Connection = cmd.ExecuteNonQuery(); for (int i = 0; i & 100;i++ ) { <mandText = "insert into Users (UserID,UserName,UserPassword) values (" + i + ",'TestUser_" + i + "','" + DateTime.Now.ToString().Replace(" ", "-").Replace(":", "-") + "')"; cmd.ExecuteNonQuery(); } Response.Write("插入成功~~&br /&"); <mandText = "select Username from Users where UserID=1"; cmd.Connection = string tempUserName = cmd.ExecuteScalar().ToString(); Response.Write("单个值查询结果为:" + tempUserName + "&br /&&br /&"); <mandText = "select * from Users "; cmd.Connection = SQLiteDataReader sdrInfo = cmd.ExecuteReader(); if (sdrInfo!= null) { int userID = 0; string userName = string.E string userPassword = string.E while(sdrInfo.Read()) { userID = Convert.ToInt32(sdrInfo["UserID"]); userName = sdrInfo["UserName"].ToString(); userPassword = sdrInfo["UserPassword"].ToString(); Response.Write("UserID:"+userID+"&br /&"); Response.Write("UserName:" + userName+ "&br /&"); Response.Write("UserPassword:" + userPassword + "&br /&"); Response.Write("&br /&"); } sdrInfo.Close(); sdrInfo.Dispose(); } <mandText = "update Users set UserPassword='linxiang'"; cmd.Connection = cmd.ExecuteNonQuery(); Response.Write("更新数据库中的数据成功."); Response.Write("以下结果为查询从数据库中经过编辑过后的数据项&br /&&br /&"); <mandText = "select * from Users "; cmd.Connection = sdrInfo = cmd.ExecuteReader(); if (sdrInfo != null) { int userID = 0; string userName = string.E string userPassword = string.E while (sdrInfo.Read()) { userID = Convert.ToInt32(sdrInfo["UserID"]); userName = sdrInfo["UserName"].ToString(); userPassword = sdrInfo["UserPassword"].ToString(); Response.Write("UserID:" + userID + "&br /&"); Response.Write("UserName:" + userName + "&br /&"); Response.Write("UserPassword:" + userPassword + "&br /&"); Response.Write("&br /&"); } sdrInfo.Close(); sdrInfo.Dispose(); } conn.Clone(); conn.Dispose(); } }
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具ASP对SQLite&数据库的期待
什么是 sqlite ?
是一款轻量级的、基于文件的嵌入式数据库,2000年就已经诞生,经过7年多的发展,直到今天已经成为最流行的嵌入式数据库,包括Google在内的公司在其桌面软件中亦使用
sqlite 存储用户数据。由此可以看出,已经没有任何理由去怀疑sqlite的稳定性了。
sqlite的优势?
免配置,和access一样,只要把数据库文件通过ftp上传到服务器上就可以使用,不需要服务器的额外支持
备份方便,因为只是一个文件,只要复制一份该文件,就能备份整个数据库
虽然是轻量级数据库,但他支持最大 2tb 的单个库文件。(2TB=2000GB)
快,无与伦比的快。经过实际测试,在几百万记录的情况下,sqlite的插入和查询速度和 mysql 不分上下,快于 sql
server,10倍于 access (但这并不意味着它可以替代 sql server )
asp如何连接sqlite?
要用ASP来操作SQLite数据库,前提条件是在服务器上得安装SQLite的ODBC驱动程序,可以本站直接下载(附件1)也可到这个站点上下载安装:,安装好后就可以像使用Access一样来使用SQLite了!
下边是一个SQLite数据库结构:
Create TABLE admin(username text,age integer);
我们再来用ASP演示下如何对SQLite数据库进行记录的增、查、改、删操作:
Response.Buffer = False
'不加此句可能出现"超过响应缓冲区限制"错误&
Set conn =
Server.CreateObject("ADODB.Connection")&
Server.CreateObject("ADODB.RecordSet")&
conn.open "DRIVER={SQLite3 ODBC
Driver};Database=F:\mzwucom\bbs\db1.db"
conn.execute("insert into admin
values('usera',20)")&
'conn.execute("update admin set username='kk' where
username='usera'")&
'conn.execute("delete from admin where
rs.open "select * from admin",conn,1,1&
Do while Not rs.Eof&
Response.Write(rs("username") & ","
& rs("age") &
rs.movenext&
Set rs = Nothing
conn.close&
Set conn = Nothing
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。使用System.Data.SQLite下载地址:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki得到System.Data.SQLite.dll添加到工程引用;&建表,插入操作C#代码&&static&void&Main(string[]&args)&&&&&&&&&&{&&&&&&&&&&&&&&SQLiteConnection&conn&=&&&&&&&&&&&&&&&&&string&dbPath&=&"Data&Source&="&+&Environment.CurrentDirectory&+&"/test.db";&&&&&&&&&&&&&&conn&=&new&SQLiteConnection(dbPath);//创建数据库实例,指定文件位置&&&&&&&&&&&&&&conn.Open();//打开数据库,若文件不存在会自动创建&&&&&&&&&&&&&&&&string&sql&=&"CREATE&TABLE&IF&NOT&EXISTS&student(id&integer,&name&varchar(20),&sex&varchar(2));";//建表语句&&&&&&&&&&&&&&SQLiteCommand&cmdCreateTable&=&new&SQLiteCommand(sql,&conn);&&&&&&&&&&&&&&cmdCreateTable.ExecuteNonQuery();//如果表不存在,创建数据表&&&&&&&&&&&&&&&&SQLiteCommand&cmdInsert&=&new&SQLiteCommand(conn);&&&&&&&&&&&&&&mandText&=&"INSERT&INTO&student&VALUES(1,&'小红',&'男')";//插入几条数据&&&&&&&&&&&&&&cmdInsert.ExecuteNonQuery();&&&&&&&&&&&&&&mandText&=&"INSERT&INTO&student&VALUES(2,&'小李',&'女')";&&&&&&&&&&&&&&cmdInsert.ExecuteNonQuery();&&&&&&&&&&&&&&mandText&=&"INSERT&INTO&student&VALUES(3,&'小明',&'男')";&&&&&&&&&&&&&&cmdInsert.ExecuteNonQuery();&&&&&&&&&&&&&&&&conn.Close();&&&&&&&&&&}&&&&可以使用SQLite Database Browser来查看数据:下载地址:http://sourceforge.net/projects/sqlitebrowser/&&&建表成功。当然这种方法插入数据效率不高,数据量大的话要使用下面这种方法:C#代码&&static&void&Main(string[]&args)&&&&&&&&&{&&&&&&&&&&&&&string&dbPath&=&Environment.CurrentDirectory&+&"/test.db";//指定数据库路径&&&&&&&&&&&&&&&&&&&&&&&&&&using(SQLiteConnection&conn&=&new&SQLiteConnection("Data&Source&="&+&dbPath))//创建连接&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&conn.Open();//打开连接&&&&&&&&&&&&&&&&&using(SQLiteTransaction&tran&=&conn.BeginTransaction())//实例化一个事务&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&for&(int&i&=&0;&i&&&100000;&i++&)&&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&SQLiteCommand&cmd&=&new&SQLiteCommand(conn);//实例化SQL命令&&&&&&&&&&&&&&&&&&&&&&&&&cmd.Transaction&=&&&&&&&&&&&&&&&&&&&&&&&&&&mandText&=&"insert&into&student&values(@id,&@name,&@sex)";//设置带参SQL语句&&&&&&&&&&&&&&&&&&&&&&&&&cmd.Parameters.AddRange(new[]&{//添加参数&&&&&&&&&&&&&&&&&&&&&&&&&&&&&new&SQLiteParameter("@id",&i),&&&&&&&&&&&&&&&&&&&&&&&&&&&&&new&SQLiteParameter("@name",&"中国人"),&&&&&&&&&&&&&&&&&&&&&&&&&&&&&new&SQLiteParameter("@sex",&"男")&&&&&&&&&&&&&&&&&&&&&&&&&});&&&&&&&&&&&&&&&&&&&&&&&&&cmd.ExecuteNonQuery();//执行查询&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&mit();//提交&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&}&&&&&&&&&}&&&插入这样的十万条数据只需要5秒左右。&读取数据:&C#代码&&static&void&Main(string[]&args)&&&&&&&&&&{&&&&&&&&&&&&&&SQLiteConnection&conn&=&&&&&&&&&&&&&&&&&string&dbPath&=&"Data&Source&="&+&Environment.CurrentDirectory&+&"/test.db";&&&&&&&&&&&&&&conn&=&new&SQLiteConnection(dbPath);//创建数据库实例,指定文件位置&&&&&&&&&&&&&&conn.Open();//打开数据库,若文件不存在会自动创建&&&&&&&&&&&&&&&&string&sql&=&"select&*&from&student";&&&&&&&&&&&&&&SQLiteCommand&cmdQ&=&new&SQLiteCommand(sql,&conn);&&&&&&&&&&&&&&&&SQLiteDataReader&reader&=&cmdQ.ExecuteReader();&&&&&&&&&&&&&&&&while&(reader.Read())&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&Console.WriteLine(reader.GetInt32(0)&+&"&"&+&reader.GetString(1)&+&"&"&+&reader.GetString(2));&&&&&&&&&&&&&&}&&&&&&&&&&&&&&conn.Close();&&&&&&&&&&&&&&&&Console.ReadKey();&&&&&&&&&&}&&&&&数据读取成功。&当前位置: &
& 正文&&|&&快速导航:              
&&&&由于项目的需求,项目经理要我做一个导出的功能,把&&中的数据导出&SQLite&数据库文件,一听就慌了,自问了一句:这行吗?&&&&先前是想到把所有的数据生成&Insert&语句,导出&Txt&文件,再拿到&SQLite&Expert&上执行。当我做完了之后,发给项目经理看,给他否了,觉得不方便操作,一定要成生&SQLite&数据库文件,即是&.db3&格式文件。&&&&后来想想,可以同时操作两种数据库,通过编程把&SQLServer&的数据库直接插入&SQLite&数据库,既然&SQLite&是单独文件存在的,不需要连接数据库管理工具的,哪就是说可以把它打包成&.zip&压缩文件进行导出。&&&&在网上看了一些&SQLite&的知识及相关的教程之后,马上进行编码。要想&&操作&SQLite&数据库,必须下载一个&System.Data.SQLite.dll&组件(网上说的官网打不开,可以网上搜一下,很多地方可以下载),有些人称它为&SQLite.NET。它是一个数据库访问组件,其中的&System.Data.SQLite&就好像是&.NET&自带的&System.Data.SqlClient&一样。里面包含了&connection、command&等数据访问的常用对象,只是他们前面都有一个前缀&SQLite。&&&&把&System.Data.SQLite.dll&组件放到项目的&Bin&目录,然后项目引用它,代码中也要写上&using&System.Data.SQL&引用。一开始不顺利,遇到连接数据库报错:Unable&to&open&the&database&file。后来发现是访问&SQLite&文件的路径写错了,非常大意。下面附上自己实例的部份代码:/// &summary&
/// SQLServer导入SQLite
/// &/summary&
/// &param name="auditorStatus"&&/param&
/// &returns&&/returns&
private bool ExportSQLite(string auditorStatus)
bool result =
string str = "";
DataTable dtExport = new DataTable();
dtExport.Columns.Add(new DataColumn("SmID", str.GetType()));
dtExport.Columns.Add(new DataColumn("X", str.GetType()));
dtExport.Columns.Add(new DataColumn("Y", str.GetType()));
dtExport.Columns.Add(new DataColumn("企业GUID", str.GetType()));
dtExport.Columns.Add(new DataColumn("企业名称", str.GetType()));
dtExport.Columns.Add(new DataColumn("年总产值", str.GetType()));
dtExport.Columns.Add(new DataColumn("申请面积", str.GetType()));
dtExport.Columns.Add(new DataColumn("企业地址", str.GetType()));
dtExport.Columns.Add(new DataColumn("企业网址", str.GetType()));
dtExport.Columns.Add(new DataColumn("员工人数", str.GetType()));
dtExport.Columns.Add(new DataColumn("法人姓名", str.GetType()));
dtExport.Columns.Add(new DataColumn("法人职位", str.GetType()));
dtExport.Columns.Add(new DataColumn("联系人", str.GetType()));
dtExport.Columns.Add(new DataColumn("联系人传真", str.GetType()));
dtExport.Columns.Add(new DataColumn("产品", str.GetType()));
dtExport.Columns.Add(new DataColumn("实际面积", str.GetType()));
dtExport.Columns.Add(new DataColumn("成品年产量", str.GetType()));
dtExport.Columns.Add(new DataColumn("种苗年产量", str.GetType()));
dtExport.Columns.Add(new DataColumn("法人手机", str.GetType()));
dtExport.Columns.Add(new DataColumn("法人邮编", str.GetType()));
dtExport.Columns.Add(new DataColumn("法人地址", str.GetType()));
dtExport.Columns.Add(new DataColumn("联系人邮编", str.GetType()));
dtExport.Columns.Add(new DataColumn("联系人邮箱", str.GetType()));
dtExport.Columns.Add(new DataColumn("联系人固话", str.GetType()));
dtExport.Columns.Add(new DataColumn("联系人手机", str.GetType()));
dtExport.Columns.Add(new DataColumn("区县", str.GetType()));
dtExport.Columns.Add(new DataColumn("地级市", str.GetType()));
string swhere = "";
if (SearchTerms == null)
//swhere = "where Convert(_UseArea)*15 &=50";
swhere = SearchT
if (auditorStatus == "已核查")
swhere += " and Com_AuditorStatus_Dic = '1'";
swhere += " and Com_AuditorStatus_Dic != '1'";
DataTable dt = BusinessFacadeComInfo.ExportSQLite(swhere);
if (dt != null && dt.Rows.Count & 0)
for (int i = 0; i & dt.Rows.C i++)
DataRow drExport = dtExport.NewRow();
drExport["SmID"] = dt.Rows[i]["SmID"].ToString();
drExport["X"] = dt.Rows[i]["SmX"].ToString();
drExport["Y"] = dt.Rows[i]["SmY"].ToString();
drExport["企业GUID"] = dt.Rows[i]["Com_ID"].ToString();
drExport["企业名称"] = dt.Rows[i]["Com_Name"].ToString();
drExport["年总产值"] = dt.Rows[i]["Pro_Receipts"].ToString();
drExport["申请面积"] = dt.Rows[i]["Com_UseArea"].ToString();
drExport["企业地址"] = dt.Rows[i]["Com_Address"].ToString();
drExport["企业网址"] = dt.Rows[i]["Com_Http"].ToString();
drExport["员工人数"] = dt.Rows[i]["Com_YGRS"].ToString();
drExport["法人姓名"] = dt.Rows[i]["Com_Delegate"].ToString();
drExport["法人职位"] = dt.Rows[i]["Com_Job"].ToString();
drExport["联系人"] = dt.Rows[i]["Com_LXR"].ToString();
drExport["联系人传真"] = dt.Rows[i]["Com_Fax"].ToString();
drExport["产品"] = GetComPro(dt.Rows[i]["Com_ID"].ToString()); //获取2010年的产品
drExport["实际面积"] = dt.Rows[i]["Com_ReallyUseArea"].ToString();
drExport["成品年产量"] = dt.Rows[i]["Com_ProductNum"].ToString();
drExport["种苗年产量"] = dt.Rows[i]["Com_GermchitNum"].ToString();
drExport["法人手机"] = dt.Rows[i]["Com_DelegateMobile"].ToString();
drExport["法人邮编"] = dt.Rows[i]["Com_DelegateZipCode"].ToString();
drExport["法人地址"] = dt.Rows[i]["Com_DelegateAddress"].ToString();
drExport["联系人邮编"] = dt.Rows[i]["Com_ZipCode"].ToString();
drExport["联系人邮箱"] = dt.Rows[i]["Com_Email"].ToString();
drExport["联系人固话"] = dt.Rows[i]["Com_Tel"].ToString();
drExport["联系人手机"] = dt.Rows[i]["Com_Mobile"].ToString();
drExport["区县"] = dt.Rows[i]["Com_AreaName"].ToString();
drExport["地级市"] = GetCityName(dt.Rows[i]["Com_AreaCode"].ToString());
dtExport.Rows.Add(drExport);
if (dtExport != null && dtExport.Rows.Count != 0)
string strTableName = "";
string connStrSQLite = "Data Source=" + Server.MapPath("~/App_Data/landtool_gdsc.db3;");
using (SQLiteConnection connSQLite = new SQLiteConnection(connStrSQLite))
connSQLite.Open();
if (auditorStatus == "已核查")
strTableName = "Wat_ComInfo_Y";
strTableName = "Wat_ComInfo_N";
string strDelete = "Delete From " + strTableName + ";";
using (SQLiteCommand cmd = new SQLiteCommand(strDelete, connSQLite))
cmd.ExecuteNonQuery(); //清空表数据
string strColumns = "";
for (int j = 0; j & dtExport.Columns.C j++)
if (j != 0)
strColumns += ",";
strColumns += dtExport.Columns[j].ColumnN
string strInsert = "";
for (int k = 0; k & dtExport.Rows.C k++)
string strValues = "";
for (int l = 0; l & dtExport.Columns.C l++)
if (l != 0)
strValues += ",";
strValues += "'" + dtExport.Rows[k][l].ToString().Trim() + "'";
strInsert = "Insert Into " + strTableName + "(" + strColumns + ") Values(" + strValues + ");";
//写入数据库
using (SQLiteCommand cmd = new SQLiteCommand(strInsert, connSQLite))
cmd.ExecuteNonQuery();
}&&&&SQLite&是当今比较流行的数据库之一,SQLite&是一种轻量级的数据库,我觉得它跟&很相似,直接访问文件就可以了,非常简便!&&&&SQLite&管理工具(SQLite&Expert),下载&SQLite&Expert&Personal&版本,免费的。(先前某同事给了一个&SQLiteDev&绿色版的,觉得不好用!)&&&&下载地址:
上一条:   
您可能也喜欢

我要回帖

更多关于 sqllite 数据类型 的文章

 

随机推荐