VS.NET2005試用手記
最近用vs.net2005 beta2做了個(gè)小工具試用了一下,的確是方便易用啊,其實(shí)我vs.net2003都沒怎么用過.不過就是喜歡嘗鮮,沒辦法(不知道是不是有很多人跟我一樣,看到新出的東西就想拿來試一試,搞得我的操作系統(tǒng)總是壞的極快).當(dāng)然,我用vs.net2005還有一個(gè)原因是它提供了serialport類來操作串口,跟一些嵌入式系統(tǒng)的串口通訊更方便. 在使用的過程中發(fā)現(xiàn)一個(gè)小問題,由于只是小工具,不想使用數(shù)據(jù)庫,所以選用了dataset的untyped dataset功能,來存取binary文件,結(jié)果在使用datatable.find函數(shù)的時(shí)候總是找不到記錄.我的代碼是這樣的:
- public void create() { dataset = new dataset();
- dataset.remotingformat = serializationformat.binary;
- datatable = new datatable();
- dataset.tables.add(datatable);
- datatable.columns.add(new datacolumn("card_no"));
- datatable.columns.add(new datacolumn("member_no"));
- datatable.columns.add(new datacolumn("serial_no"));
- datatable.columns.add(new datacolumn("expiry_date", type.gettype("system.datetime")));
- datacolumn[] keys = new datacolumn[1];
- keys[0] = datatable.columns["serial_no"];
- datatable.primarykey = keys;
- }
- public void open(sspaning filename)
- {
- if (file.exists(filename))
- {
- binaryformatter bf = new binaryformatter();
- filesspaneam fs = new filesspaneam(filename, filemode.open);
- spany
- {
- //dataset.readxml(filename);
- //dataset.acceptchanges();
- dataset = (dataset)bf.deserialize(fs);
- dataset.acceptchanges();
- }
- finally
- {
- fs.close();
- } public void save(sspaning filename)
- {
- if (dataset.haschanges())
- {
- binaryformatter bf = new binaryformatter();
- filesspaneam fs = new filesspaneam(filename, filemode.create);
- spany
- {
- //dataset.writexml(filename);
- bf.serialize(fs, dataset);
- dataset.acceptchanges();
- }
- finally
- {
- fs.close();
- }
- }
- }
用datatable.rows.find()的時(shí)候,明明table中有要找的數(shù)據(jù),卻始終返回null,而使用readxml,writexml函數(shù)操作xml格式來存儲就沒問題(就是漫一點(diǎn),這是我想用binary格式的原因).不知是不是我忽略了某些步驟,msdn2上的說明還是有點(diǎn)簡單啊。不過總的來說,VS.NET2005還是很好用的。
【編輯推薦】