(1)單錶內字段更新
update pipeline set state='0' where address='33'
(2)兩個表間關聯更新
在access資料庫中,update指令不能夠含有from語句。因此在多表關聯批量更新資料時操作不是那麼方便。
update table1 as t1,table2 as t2 set t1.name=t2.name where t1.id=t2.id ;
用where語句不好使的情況下,可以使用inner join 語句。
update table1 t1 inner join table2 t2 on t1.id=t2.id set t1.name=t2.name;
(3)單錶內帶分支條件的更新
update 表 set a = (case when b=滿足一定的條件 then '111' else '222' end)
update smdtv_632 set symbolid= (case when subsid='檢查井' then '908008' when subsid='雨水口' then '908013' end )
update smdtv_632 set symbolid= (case when subsid='檢查井' then '908008' when subsid='雨水口' then '908013' else '0' end )
當 s_x>e_x時,tmp1取(s_lat,e_lat)的最大值,反之,s_xe_x then (case when s_lat(4)兩表內帶分支條件的更新
update a set a=case when b.***='***' then '111' else '222' end from a join b on a.id=b.id
(5)帶判斷條件的更新
update psline set code= iif(type='psys',"4000",iif(type='psws',"4100","4200"))
(6)資料為空時,給資料設定預設值
update psline t set t.s_deep = '1' where t.s_deep is null
(7)大量資料更新時,用datatable 更新整個access資料表
public void updateaccess( datatable temp, string tablename)
where 1 =2", tablename), dconn);//建立乙個dataadapter物件
oledbcommandbuilder cb = new oledbcommandbuilder(bada);//這裡的commandbuilder物件一定不要忘了,一般就是寫在dataadapter定義的後面
cb.quoteprefix = "[";
cb.quotesuffix = "]";
dataset ds = new dataset();//建立dataset物件
bada.fill(ds, "demo");//填充dataset
foreach (datarow temprow in temp.rows)
bada.update(ds, "demo");//用dataadapter的update()方法進行資料庫的更新
}
C 查詢更新ACCESS資料
初始化 testitemsdataset.tables.clear testitemsdataset.tables.add testitemsdataset.tables 0 columns.add acu testitemsdataset.tables 0 columns.add test nam...
access資料庫更新問題
今天update access資料庫時,使用了引數化的方式,結果不報錯,但是資料也沒有更新。這問題搞了我好長時間,鬱悶,經過google發現access使用引數化時,引數位置必須和賦值順序相同才行,否則更新時就會出現資料無法更新但是也不報錯的怪現象。例如 update tablename set a...
Access資料庫不能寫不能更新的解決方法
access資料庫不能寫,造成這種問題的原因是web共享資料夾在ntfs分割槽裡,而iusr internet來賓帳戶 沒有足夠許可權。解決方法 1.在資料夾選項裡,將 使用簡單檔案共享 前的對勾去掉。2.在web共享資料夾屬性裡面的安全選項卡中點新增。3.在選擇使用者或組的對話方塊中點高階。4.點...