以下問題都是容易忽略,但卻不容易找出問題的所在,讓我頭疼不少,故在此列出,即是乙個總結,同樣也給其他人參與!
1.使用引數形式執行sql命令時,引數陣列需與在sql語句中引數名出現的位置及名稱必須完全相同,否則執行不成功,但不會報錯;
sql="insert table(a,b,c) values(@a,@b,@c)"
params= --->這是錯誤的
params= --->這是正確的
2.使用引數形式執行sql命令時,當欄位型別為時間型別時,需要顯形宣告引數型別為date,不能採用引數名+值的形式
sql="update table set editdate=@dt"
param=new oledbparameter("@dt",datetime.now) -->這是錯誤的,執行時會報錯:標準表示式中資料型別不匹配
param=new oledbparameter("@dt",oledbtype.date) -->這是正確的
3.注意access資料庫保留字,盡量不要使用該類字作為欄位名,若確實需要使用,則應該加上方括號,顯示說明
sql="update user set name='***'" -->這是錯誤的
sql="update [user] set [name]='***'" -->這是正確的,顯示說明非系統保留字
資料庫注意事項
主要就是6點 1.必須考慮業務唯一性並建復合唯一索引 2.所有字段盡量設定為not null 3.區分度低的字段不要建索引 4.邏輯外來鍵要建索引 5.用uuiddelete id varchar 32 not null default 做偽刪除 6.建議確定無負數的字段設定unsigned 建表時...
資料庫注意事項
索引會佔據瓷盤空間,資料越大索引佔據空間越大 mysql表中除了聚集索引外其他索引都是輔助索引 secondary index,也稱為非聚集索引 與聚集索引的區別是 輔助索引的葉子節點不包含行記錄的全部資料。聚焦索引 更適合between and和order by操作,每個表只能建立乙個聚焦索引 如...
android 資料庫操作的注意事項
雖然 邏輯驗證沒問題,但還是會有低概率的異常,導致乙個流程的資料庫操作會中途出錯,導致更嚴重的錯,如系統io繁忙等錯誤。錯誤例子如下 public void test alarmdata olddata,alarmdata newdata catch exception e 1.contentpro...