c 连接mysql中dataset_C#操作Dataset数据集与SQLite数据库

本文展示了如何使用C#进行SQLite数据库的操作,包括创建数据库、建立表、插入数据,以及通过Dataset数据集进行数据导入。示例中详细给出了创建数据库连接、执行SQL命令以及利用Dataset进行数据批量插入的代码。
摘要由CSDN通过智能技术生成

一、SQLite操作,直接贴代码,很简单:

//创建一个数据库文件

string datasource=Application.StartupPath + "\\test.db";

System.Data.SQLite.SQLiteConnection.CreateFile(datasource);

//连接数据库

System.Data.SQLite.SQLiteConnection conn =

new System.Data.SQLite.SQLiteConnection();

System.Data.SQLite.SQLiteConnectionStringBuilder connstr =

new System.Data.SQLite.SQLiteConnectionStringBuilder();

connstr.DataSource = datasource;

connstr.Password = "admin";//设置密码,SQLite ADO.NET实现了数据库密码保护

conn.ConnectionString = connstr.ToString();

conn.Open();

//创建表

System.Data.SQLite.SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand();

string sql = "CREATE TABLE test(username varchar(20),password varchar(20))";

cmd.CommandText=sql;

cmd.Connection=conn;

cmd.ExecuteNonQuery();

//插入数据

sql = "INSERT INTO test VALUES('dotnetthink','mypassword')";

cmd.CommandText = sql;

cmd.ExecuteNonQuery();

//取出数据

sql = "SELECT * FROM test";

cmd.CommandText = sql;

System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader();

StringBuilder sb = new StringBuilder();

while (reader.Read())

{

sb.Append("username:").Append(reader.GetString(0)).Append("\n")

.Append("password:").Append(reader.GetString(1));

}

MessageBox.Show(sb.ToString());

二、利用Dataset数据集向SQLite数据库插入数据,也直接贴代码:

DialogResult dlgResult= openFileDialog1.ShowDialog();  // 打开要导入的文件

if (openFileDialog1.FileName == "" || dlgResult != DialogResult.OK)

return;

// 利用StreamReader类读取文本内容

StreamReader sr=new StreamReader

(File.OpenRead(openFileDialog1.FileName),System.Text.Encoding.Default);

//连接数据库

System.Data.SQLite.SQLiteConnection conn = new System.Data.SQLite.SQLiteConnection();

System.Data.SQLite.SQLiteConnectionStringBuilder connstr

= new System.Data.SQLite.SQLiteConnectionStringBuilder();

connstr.DataSource = datasource;

connstr.Password = "admin";//设置密码,SQLite ADO.NET实现了数据库密码保护

conn.ConnectionString = connstr.ToString();

conn.Open();

//大量更新时采用事务的方式,先缓存事务,然后SQLiteDataAdapter.update后批量commit

SQLiteTransaction ts = conn.BeginTransaction();

string sql=" select name,number from test limit 1";

SQLiteDataAdapter dta = new SQLiteDataAdapter(sql,conn);

SQLiteCommandBuilder scb = new SQLiteCommandBuilder(dta);

dta.InsertCommand=scb.GetInsertCommand();

DataSet DS = new DataSet();

dta.FillSchema(DS,SchemaType.Source, "Temp");    //加载表架构 注意

dta.Fill(DS,"Temp");    //加载表数据

DataTable DT = DS.Tables["Temp"];

//插入数据

while (!sr.EndOfStream)

{

string[] strArr = sr.ReadLine().Split(new Char[] { '\t' });

if (strArr[0] !="" && strArr[1] !="")

{

DataRow DR = DT.NewRow();

DR[0]=strArr[0];

DR[1]=strArr[1];

DT.Rows.Add(DR);

}

}

int result=dta.Update(DT);    // 如不用BeginTransaction和Commit批量提交事务,性能会很低,350条数据20多秒

ts.Commit();    // 提交事务

DS.AcceptChanges();

// 释放资源

dta.Dispose();

DS.Clear();

conn.Close();

conn.Dispose();

sr.Close();

sr.Dispose();

MessageBox.Show("成功导入了: " + result.ToString() + " 行数据。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值