在PDA中設計數據庫后,避免不了的會根據實際的需求改動功能。最害怕的是,PAD都發下去了,很多台,而工作已經開展了,數據已經有一部分了,中間要增加功能,增加表或者增加字段,怎么辦?只有在更新程序的時候,判斷表是否存在,不存在則臨時創建,字段也類似。
Sqlite中判斷表是否存在,表名'attPointSampleEx':
string sql = "SELECT COUNT(*) as CNT FROM sqlite_master where type='table' and name='attPointSampleEx'";
string sql1 = "CREATE TABLE [attPointSampleEx] ([ID] VARCHAR(50) NOT NULL UNIQUE,[PickName] VARCHAR(20)," +
"[SpecimenCode] VARCHAR(200), " +
"[PickTime] VARCHAR(19)," +
"[PickAddre] VARCHAR(200)," +
"[Lon] VARCHAR(20)," +
"[ZYName] VARCHAR(200), " +
"[ZYCode] VARCHAR(10), " +
"[PlantXue] VARCHAR(200), " +
"[HerbalPart] VARCHAR(50), " +
"[YongTu] VARCHAR(50), " +
"[SampleType] VARCHAR(2)," +
"[LiYong] VARCHAR(200)," +
"[WeiXie] VARCHAR(200)," +
"[Notion] VARCHAR(200));";
//_IsCreate Bool類型,判斷是否創建了表
if (!_IsCreate)
{
//讀取系統表,看是否有此表的記錄
DataTable tDT = MainDataBase.pMainDataBase.pDataBase.getDataTableFromSql(sql);
if (tDT != null && tDT.Rows.Count>0)
{
//判斷記錄
_IsCreate = Convert.ToInt32(tDT.Rows[0][0]) == 1;
if (!_IsCreate)
{
//如果沒有記錄,則創建表
_IsCreate = MainDataBase.pMainDataBase.pDataBase.ExecuteNonQuery(sql1) >= 0;
}
tDT.Dispose();
}
}