SQLite語句:
cmd.CommandText = "SELECT count(*) from sqlite_master where type='table' and name='tableName';
int a= Convert.ToInt32(cmd.ExecuteScalar());
如果存在,則返回數值1;
如果不存在,則返回數值0。
if ( a== 0) // 不存在此數據表
解釋:每一個 SQLite 數據庫都有一個叫 SQLITE_MASTER 的表, 它定義數據庫的模式。 SQLITE_MASTER 表看起來如下:
CREATE TABLE sqlite_master (
type TEXT,
name TEXT,
tbl_name TEXT,
rootpage INTEGER,
sql TEXT
);
對於表來說,type 字段永遠是 ‘table’,name 字段永遠是表的名字。
示例

int count = 0; string tableName = offsetAngle.materialName + offsetAngle.thinkness.ToString(); try { using (SqliteCommand cmd = new SqliteCommand()) { cmd.CommandText = "SELECT count(*) from sqlite_master where type='table' and name='" + tableName + "'; "; if (Convert.ToInt32(cmd.ExecuteScalar()) == 0) // 不存在此數據表 { cmd.CommandText = string.Format(offsetAngleCreateStr, tableName); cmd.ExecuteNonQuery(); cmd.CommandText = string.Format(offsetAngleInsertStr, tableName, offsetAngle.angle.ToString(), offsetAngle.offsetAngle.ToString()); count = cmd.ExecuteNonQuery(); } else //存在此數據表,直接加數據 { cmd.CommandText = string.Format(offsetAngleInsertStr, tableName, offsetAngle.angle.ToString(), offsetAngle.offsetAngle.ToString()); count = cmd.ExecuteNonQuery(); } } }