最近學習sqlite,在看了一些資料後,寫了一個例子,可能對初學sqlite或者學習將圖片插入資料庫等的有用,把源碼發出來,給需要參考的。也歡迎大家提出建議。
包含常用的sql操作,增刪改查,同時也在例子中說明,sqlit的sql語句使用參數,可以用@也可以用$。
1.使用@的示範:
string ext = System.IO.Path.GetExtension(myFile.FileName).ToLower();
if (ext == ".jpg" || ext == ".bmp" || ext == ".jpeg" || ext == ".gif" || ext == ".png" || ext == ".tiff" || ext == ".jpeg")
{
string sql = "INSERT INTO Files(Id,[FileName],FileType,FileLength,FileByte,UploadDate,DownloadCount,Remark)VALUES(@Id,@FileName,@FileType,@FileLength,@FileByte,@UploadDate,@DownloadCount,@Remark)";
SQLiteCommand cmd = new SQLiteCommand(sql, new SQLiteConnection(datasouce));
cmd.Parameters.AddWithValue("@Id", Guid.NewGuid().ToString());
cmd.Parameters.AddWithValue("@FileName", myFile.FileName);
cmd.Parameters.AddWithValue("@FileType", myFile.PostedFile.ContentType);
cmd.Parameters.AddWithValue("@FileLength", myFile.PostedFile.ContentLength.ToString());
cmd.Parameters.AddWithValue("@FileByte", myFile.FileBytes);
cmd.Parameters.AddWithValue("@UploadDate", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
cmd.Parameters.AddWithValue("@DownloadCount", 0);
cmd.Parameters.AddWithValue("@Remark", string.Empty);
try
{
cmd.Connection.Open();
if (cmd.ExecuteNonQuery() > 0)
{
RegisterStartupScript("alert", "<script>alert('上傳成功!')</script>");
}
else
{
RegisterStartupScript("alert", "<script>alert('上傳失敗!')</script>");
}
}
catch (SQLiteException ex)
{
Console.Write(ex.Message);
}
finally
{
cmd.Connection.Close();
}
}
else
{
RegisterStartupScript("alert", "<script>alert('照片格式不正確,請重新選擇!')</script>");
}
2.使用$的示範:
string sql = "UPDATE Files SET DownloadCount=DownloadCount+1 WHERE Id=$Id";
SQLiteCommand cmd = new SQLiteCommand(sql, new SQLiteConnection(datasouce));
cmd.Parameters.AddWithValue("$Id", FileId);
try
{
cmd.Connection.Open();
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.Write(ex.Message);
}
finally
{
cmd.Connection.Clone();
}
個人覺得sqlite挺不錯的,至少比Access要好一些。我個人看到的一些應用有中國移動飛信用戶端程式,Google的瀏覽器chrome等。
源碼下載:StoreImage.zip