0
我正在做一個UWP應用與SQLitePCLSQLitePCL選擇呼叫 - ISQLiteStatement.Step檢索條件
我稱之爲 「宋」
CREATE TABLE IF NOT EXISTS Song
(ID INTEGER Primary Key AutoIncrement NOT NULL
, Artist VARCHAR(200)
, Title VARCHAR(200)
, Album VARCHAR(200)
, Path VARCHAR(255)
, Type VARCHAR(50));
以及檢索功能的表:
private static async Task<Song> getSong(int sID)
{
//TODO IMPLIMENT TYPE CHECK
Song newsong = null;
using (var statement = dbConnection.Prepare(@"SELECT [ID],[Path] FROM Song WHERE ID = ?"))
{
statement.Bind(1, sID);
if(SQLiteResult.DONE == statement.Step())
{
string path = (string)statement[1];
StorageFolder folder = KnownFolders.MusicLibrary;
StorageFile songfile = await folder.GetFileAsync(path);
MusicProperties prop = await songfile.Properties.GetMusicPropertiesAsync();
newsong = new Song()
{
Id = (int)statement[0],
SongFile = songfile,
Artist = prop.Artist,
Album = prop.Album,
Title = prop.Title
};
}
}
return newsong;
}
然而問題是,這似乎忽略了我設定的條件:
if(SQLiteResult.DONE == statement.Step()
它是一種錯誤的情況?我只想在檢索到匹配ID的行時檢索值。
Step'實際返回什麼值? –
還要注意,SQLite忽略所有'varchar'大小 - [所有內容都只是'text'](http://www.sqlite.org/datatype3.html) –
Step返回Row – Jon