2009年8月26日 星期三

Sqlite 檢查 table是否存在

語法如下



SELECT count(*) FROM sqlite_master WHERE type='table' and name='" + TableName+ "'";


這裡的 name 後面接的就是 table name

查詢後會顯示數目, 0表示沒有, 1 表示有, 應該不會有一樣名稱的table 所以只有 0 或 1
兩種


sqlite_master 還有其他的用法

2009年8月14日 星期五

Android BMI DEMO 心得

看了一下 深入淺出android 的 BMI 範例,稍微寫一下心得及結構整理一下 如下圖


2009年8月12日 星期三

C sharp 取得現在檔案位置

用一個簡單的語法就可以取得現在檔案的位置


Directory.GetCurrentDirectory();




也可以使用來取得執行檔案的位置
System.Windows.Forms.Application.StartupPath

兩者的差異
GetCurrentDirectory 會取得現在的資料夾位置,如果是用捷徑的話,就會回傳捷徑所在的資料夾

StartupPath 都是會回傳 程式確切的資料夾位置


詳細可見

http://www.huanghengxu.com/Html/Article/207.htm

2009年8月10日 星期一

C sharp or .Net 使用sqlite : 6(end) update data

require download System.Data.SQLite 及設定, 可見 C sharp or .Net 使用sqlite 設定

SQLiteCommand 的變數定義自行參考 SQLite.Net 的 Help

關於其他的SQL 語法,可以參考

update語法 大致如下

UPDATE table_name
SET column_name1 = value1,
column_name2 = value2, ...
[WHERE condition]
javascript:void(0)



以下是簡單的例子,將id=1 的欄位 取代乘 5



public void UpdateExampleTable(SQLiteCommand cmd)
{

try
{
/// Set drop table command
cmd.CommandText = "Update [tbl] set id=1 where id=5";
/// Execute the command, iF have not exist show error message
cmd.ExecuteNonQuery();
MessageBox.Show("update OK");
}
catch
{
MessageBox.Show("update Error");
}


}


這應該是相關的最後一篇

C sharp or .Net 使用sqlite : 5 delete data

require download System.Data.SQLite 及設定, 可見 C sharp or .Net 使用sqlite 設定

SQLiteCommand 的變數定義自行參考 SQLite.Net 的 Help

關於其他的SQL 語法,可以參考

在SQL 相關刪除的語法有3個

delete 刪除特定欄位在某個table

DELETE FROM employee WHERE id = 100;

truncate 刪除所有欄位在某個table

TRUNCATE TABLE employee;

但 SQLite 沒有 truncate 但可以用
DELETE FROM employee 的語法達成同樣效果

drop 刪除整個table


DROP TABLE employee;


以下例子,顯示相關SQLite語法

例一 刪除 table tbl 中 id =3的欄位


public void DeleteExampleTable(SQLiteCommand cmd)
{

try
{
/// Set Delete command
cmd.CommandText = "DELETE FROM [tbl] where id=3";
/// Execute the command, iF have not exist show error message
cmd.ExecuteNonQuery();
MessageBox.Show("delete OK");
}
catch
{
MessageBox.Show("delete Error");
}

}




例二 刪除 table tbl 所有的欄位達成 truncate 的效果



public void DeleteExampleTable(SQLiteCommand cmd)
{

try
{
/// Set Delete command
cmd.CommandText = "DELETE FROM [tbl]";
/// Execute the command, iF have not exist show error message
cmd.ExecuteNonQuery();
MessageBox.Show("delete OK");
}
catch
{
MessageBox.Show("delete Error");
}

}


例三 刪除 table tbl (drop)


public void DROPExampleTable(SQLiteCommand cmd)
{

try
{
/// Set drop table command
cmd.CommandText = "DROP TABLE [table]";
/// Execute the command, iF have not exist show error message
cmd.ExecuteNonQuery();
MessageBox.Show("Drop OK");
}
catch
{
MessageBox.Show("Drop Error");
}


}

C sharp or .Net 使用sqlite : 4 select data

require download System.Data.SQLite 及設定, 可見 C sharp or .Net 使用sqlite 設定

SQLiteCommand 的變數定義自行參考 SQLite.Net 的 Help


以下例子,查詢資料利用Messageshow的方式顯示查詢結果

由於此例只有兩欄,所以就只有 get 0 和 get 1




public void GetDataFromAccountTable(SQLiteCommand cmd)
{
// Set command
cmd.CommandText = "SELECT * FROM [tbl]";

/// CommandBehavior -> using System.Data;
/// Read all information
using (SQLiteDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
/// Read information by each record
/// GetValue(by index), the index is begin 0 to the number of Field-1
while (dr.Read())
{
MessageBox.Show("第"+ dr.GetValue(0)+" 條:" + dr.GetValue(1));
}
}




}

2009年8月6日 星期四

C sharp or .Net 使用sqlite : 3 Insert data

require download System.Data.SQLite 及設定, 可見 C sharp or .Net 使用sqlite 設定

SQLiteCommand 的變數定義自行參考 SQLite.Net 的 Help


以下例子,將資料寫入前一篇定義的table中

簡單的 Insert data function , 是利用一個for loop 一次輸入 5 筆資料
如下




public void InserDataInAccountTableTest(SQLiteCommand cmd)
{

try
{
for (int i = 0; i < 5; i++){
/// Set Commend
cmd.CommandText = string.Format("INSERT INTO [tbl] VALUES ({0}, 'Test{1}')", i,i);

/// Execute Commend

cmd.ExecuteNonQuery();
}
}
catch{ MessageBox.Show("insert Error");
}
}

C sharp or .Net 使用sqlite :2 Login DB and 新增Table

require download System.Data.SQLite 及設定, 可見 C sharp or .Net 使用sqlite 設定

SQLiteCommand 的變數定義自行參考 SQLite.Net 的 Help

簡單的 login and 新增 table function 如下




public void LoginSqliteDatabase()
{

/// Set Database Root
string DatabaseRoot = "c:\\test.db";

/// Set Database Password
string DB_Password = "password";

/// Open Database
/// Version is sqlite version
SQLiteConnection cnn = new SQLiteConnection("Data Source="+ DatabaseRoot+";"+ "Version = 3; Password ="+DB_Password);

/// Open connect
cnn.Open();


/// Define SQLite Command object
SQLiteCommand cmd = new SQLiteCommand();
cmd.Connection = cnn;

CreatExampleTable(cmd);


}


注意 login 若沒有設定密碼的話,也可以換為以下指令
SQLiteConnection cnn = new SQLiteConnection("Data Source="+ DatabaseRoot+";");




public void CreatExampleTable(SQLiteCommand cmd)
{

try
{
/// Set Creat table command
cmd.CommandText = "create table tbl(one, two)";
/// IF have exist show error message
cmd.ExecuteNonQuery();

}
catch
{
Console.WriteLine("error");
}


}


注意 creat table 指令也可以換為以下格式,定義更多資訊
cmd.CommandText = "CREATE TABLE [tbl] (int, teo nvarchar(20))";

2009年8月5日 星期三

C sharp or .Net 使用sqlite : 1 新增資料庫

步驟主要參考 守望轩-Sqlite数据库的加密

require download System.Data.SQLite 及設定, 可見 C sharp or .Net 使用sqlite 設定

SQLiteConnection的變數定義可參考

簡單的function 如下



public void CreatSqliteDatabase()
{
/// Set Database Root
string DatabaseRoot = "c:\\test.db";

/// Set Database Password
string DB_Password = "password";

/// Check file is exits
/// File.Exists() -> using System.IO;
if (File.Exists(DatabaseRoot))
{
MessageBox.Show("Already exists.");
}
else
{
/// Creat table
SQLiteConnection.CreateFile(DatabaseRoot);

/// Open Database
SQLiteConnection cnn = new SQLiteConnection("Data Source="+DatabaseRoot);

/// Open connect
cnn.Open();

/// Set default Password
cnn.ChangePassword(DB_Password);
}
}

C sharp or .Net 使用sqlite 設定

要在C# 或 .net 環境下使用Sqlite,必須安裝額外的DLL

System.Data.SQLite

SQLite.NET.0.21_x68_dll.zip

下載後,開啟專案

選擇 Project -> Add Reference 好可以 使用 他定義好得函數

使用不同的dll 有不同的 include 方法

  • System.Data.SQLite
using System.Data.SQLite
  • SQLite.NET.0.21_x68_dll.zip
using Finisar.SQLite


此外轉貼上一些例子和教學

為了說明方便,之後文章都以System.Data.SQLite 為例說明

Google Doc Presentation 插入投影片

雖然google Document 是蠻好用的一個工具,但是說真的要在線上編輯還倒是蠻不習慣的,本人我還是習慣在傳統的PPT上編輯在上傳檔案,不過presentation 沒有像 spreadsheet有上傳新版本的功能....,要編輯還算是有些麻煩。

不過在 Presentation 上有一個 插入slide 的功能,可以讓在本機編輯好得投影片,整合在網路上的檔案

步驟如下

1. 點選insert , insert slides


2. 點選insert , insert slides
右側一攔選擇要插入的檔案位置,從在google doc的檔案選取,或由電腦上傳


2-1 由電腦上傳的話要注意 現在不支援pptx的格式


2-2 選擇好了後按的upload



3-1. 選擇要插入的檔案,slide 左下角可以勾選


3-2. 第一頁可以點選全選




雖然還是有點麻煩,但是如果之前有設分享的話就不用重新在設一遍

期待之後可以直接上傳新版本吧...