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

来源:转载

将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,即在重复的时候替换掉没有的情况下添加。



分享给朋友:
您可能感兴趣的文章:
随机阅读: