我製作了一個連接到本地創建的SQLite數據庫的Windows窗體應用程序。這是一個非常簡單的應用程序,主要是選擇並插入數據庫。 我有一個類來檢查這樣的數據庫是否存在,如果不存在,它創建它。我還添加了一些執行查詢等的方法。將SQLite窗體應用程序遷移到通用Windows應用程序(C#)
現在,在Windows窗體(或控制檯應用程序)的連接是非常簡單的:
SQLiteConnection conn = new SQLiteConnection("Data Source=sampleDB.sqlite;Version=3;");
conn.Open();
//Assume that i created table Person(int ID, string NAME)
string sql = "select * from Person";
SQLiteCommand command = new SQLiteCommand(sql, conn);
SQLiteDataReader reader = command.ExecuteReader();
while(reader.Read()){
Console.WriteLine(reader["ID"] + " | " + reader["NAME"]);
}
conn.Close();
現在,我試圖遷移我的應用程序從Windows窗體到通用的Windows應用程序。我做 的第一件事,我看到System.Data.SQLite.dll不適用於這樣的應用程序,所以我SQLite.Net-PCL安裝SQLite,讓通用Windows平臺,一起
但現在的問題是,我不知道如何像以前那樣將查詢作爲字符串傳遞。 所有我遇到的是,我要創建一流的人與標識和名稱的屬性,然後寫些這樣的:
SQLitePlatformWinRT sqlitePlatform = new SQLitePlatformWinRT();
var db = new SQLiteConnection(sqlitePlatform, "sampleDB.sqlite");
db.CreateTable<Person>();
db.Insert(new Person(ID_PERSON, NAME_PERSON));
有什麼辦法,用舊的方式(如Windows窗體)在通用Windows應用程序? IE:
//Instead of using this:
db.Insert(new Person(ID_PERSON, NAME_PERSON));
//I want to use this:
SQLiteCommand command = new SQLiteCommand("insert into Person ...", conn);
command.ExecuteNonQuery();
你能否也請在TODO部分添加如何使用讓我們說來自表Person的Name屬性? –
即在我使用reader [「Name」]獲取該屬性之前。我現在如何使用它? –
@MihaJamsek爲了讀取查詢返回的記錄,我們需要以類似[SqlDataReader](https://msdn.microsoft.com/en-us/library/system.data)的方式遍歷行。 sqlclient.sqldatareader(v = vs.110).aspx)Class。在這裏,我們可以通過列序號或列名稱來獲取指定列的值。由於此方法得到「Object」類型的結果,因此可能需要將其轉換爲列的實際類型。例如,請參閱我更新的答案。 –