您的位置:首页 > 数据库

将WPF中listview的数据导入到SQLITE(C#)

2015-10-22 11:14 561 查看

将listview中的数据导入到SQLITE

本文代码使用的是VS2013

listview为WPF中的

数据库为SQLite

获取listview中的信息,添加一个类来存储其中的信息

class listviewName
{
private string _Header1;
private string _Header2;
private string _Header3;

public string Header1
{
get { return _Header1;}
set { _Header1 = value;}
}
public string Header2
{
get { return _Header2;}
set { _Header2 = value;}
}

public string Header3
{
get { return _Header3;}
set { _Header3= value;}
}

public IPMessage(string Header1, string Header2,string Header3)
{
_Header1 = Header1;
_Header2 = Header2;
_Header3 = Header3;
}


将listview中的信息导入SQLite中。

string dbPath = Environment.CurrentDirectory + "/SQLname.db";//设置数据库的路径
using (SQLiteConnection conSQL = new SQLiteConnection("Data Source =" + dbPath))//创建连接
{
conSQL.Open();
string sql = "CREATE TABLE IF NOT EXISTS TABLEname(headername1 type1,headername2 type2);";//建表语句 (表头的信息:名字 数据类型,每个表头信息用“,”隔开 ex:Status varchar(4),NUM integer)
SQLiteCommand cmdCreateTable = new SQLiteCommand(sql, conSQL);
cmdCreateTable.ExecuteNonQuery();//如果表不存在,创建数据表
using (SQLiteTransaction tranSQL = conSQL.BeginTransaction())
{
for (int i = 0; i < listview.Items.Count; i++)
{
listviewName listviewmessage = listview.Items[i] as listviewName;
SQLiteCommand cmdSQL = new SQLiteCommand(conSQL);
cmdSQL.Transaction = tranSQL;
cmdSQL.CommandText = "insert into TABLEname values(@headername1,@headername1)";
cmdSQL.Parameters.AddRange(new[]{
new SQLiteParameter("@headername1",listviewmessage.Header1),
new SQLiteParameter("@headername2",listviewmessage.Header2)
});
cmdSQL.ExecuteNonQuery();//查询
}
tranSQL.Commit();//提交
}
conSQL.Close();
}


为了避免导入重复的信息到数据库中,添加指定的UNIQUE KEY。

SQLiteCommand cmdCreateUnique = new SQLiteCommand(conSQL);
cmdCreateUnique.CommandText = "CREATE UNIQUE INDEX uniqueMAC ON ZD(MACAddress)";
cmdCreateUnique.ExecuteNonQuery();


然后将cmdSQL.CommandText中的insert改为insert or replace,即在重复的时候替换掉没有的情况下添加。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息