我有一个包含多个表的数据集。 我显然可以做一个Dataset.WriteToXML(“Somefile.xml”)
如果我想将数据集导出到SQLite格式的文件,该怎么办?
换句话说,我希望能够将数据集的内容写入(即序列化)到SQLite文件中。 Dataset.SerializeToSQLite( “Sqliteformatted.bin”)
同样,我希望能够将SQLite文件读入数据集。
我想在c#中执行此操作。
提前感谢任何指示。
鲍勃
答案 0 :(得分:1)
此示例可能会回答您的问题。
using System;
using System.Data;
using System.Data.SQLite;
namespace DataAdapterExample
{
class Program
{
static void Main(string[] args)
{
// Create a simple dataset
DataTable table = new DataTable("Students");
table.Columns.Add("name", typeof(string));
table.Columns.Add("id", typeof(int));
table.Rows.Add("Bill Jones", 1);
table.Rows.Add("Laurie Underwood", 2);
table.Rows.Add("Jeffrey Sampson", 3);
DataSet ds = new DataSet();
ds.Tables.Add(table);
// Save in an SQLite file
string desktopPath =
Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
string fullPath = desktopPath + "\\class.db";
SQLiteConnection con = new SQLiteConnection("Data Source=" + fullPath);
con.Open();
// Create a table in the database to receive the information from the DataSet
SQLiteCommand cmd = new SQLiteCommand(con);
cmd.CommandText = "DROP TABLE IF EXISTS Students";
cmd.ExecuteNonQuery();
cmd.CommandText = "CREATE TABLE Students(name text, id integer PRIMARY KEY)";
cmd.ExecuteNonQuery();
SQLiteDataAdapter adaptor = new SQLiteDataAdapter("SELECT * from Students", con);
adaptor.InsertCommand = new SQLiteCommand("INSERT INTO Students VALUES(:name, :id)", con);
adaptor.InsertCommand.Parameters.Add("name", DbType.String, 0, "name");
adaptor.InsertCommand.Parameters.Add("id", DbType.Int32, 0, "id");
adaptor.Update(ds, "Students");
// Check database by filling the dataset in the other direction and displaying
ds = new DataSet();
adaptor.Fill(ds, "Students");
foreach (DataTable dt in ds.Tables)
{
Console.WriteLine("Table {0}", dt.TableName);
foreach (DataRow dr in dt.Rows)
{
foreach (DataColumn dc in dt.Columns)
{
Console.Write("{0,-18}", dr[dc]);
}
Console.WriteLine();
}
}
}
}
}
您可以在SQLiteDataAdapter Class documentation中找到一个非常相似的示例。
答案 1 :(得分:1)
SQLite不是文件格式,而是数据库。
如果要将DataSet
中的所有数据放入数据库,则需要创建与数据库的连接(可以是空白文件,SQLite将在初始连接时创建它),然后创建数据库结构。然后发出INSERT
语句将数据附加到数据库。您可以使用SQLiteDataAdapter
来简化插入语句的创建。