寫(xiě)這篇文章時(shí),我也拿不好主意到底是該post上來(lái)呢,還是不post!因?yàn)檫@實(shí)在好像沒(méi)有什么的。后來(lái)轉(zhuǎn)念一想,反正是blog嗎,不就是寫(xiě)寫(xiě)自己的心情之類(lèi)的嘛,管他有沒(méi)有技術(shù)含量,只要不放到首頁(yè)上影響整體博客的技術(shù)形象就可以了。所以我就把這篇文章post上來(lái)了。高手就免看了。:)
事情源于一個(gè)網(wǎng)友的一個(gè)要求:她自己說(shuō)是一個(gè)作業(yè),要將pubs中的所有用戶表的內(nèi)容分別用xml文件導(dǎo)出保存起來(lái)。本來(lái)想當(dāng)時(shí)給她答案的,可真不好彩的是被一個(gè)客戶的電話逮住,只好回到家中為她做一下。我也不清楚,她是扮豬吃老虎還是真是初學(xué)者。不過(guò)從和她對(duì)話來(lái)看,倒也是性情中女子。應(yīng)該還是蠻可愛(ài)的一個(gè)女孩子啦!隱隱約約談話當(dāng)中,我想她可能自己也已經(jīng)完成這個(gè)“作業(yè)”的,可能她自己拿不準(zhǔn)自己能不能“及格”才問(wèn)我的。呵呵...
拿著這份要求,很快,腦子里就閃現(xiàn)dataset有一個(gè)writexml的方法。事實(shí)上,我也是采用這個(gè)簡(jiǎn)單的方法來(lái)完成她的作業(yè)的。當(dāng)然,在這個(gè)小小的作業(yè)上,我還是將幾乎將ado.net用了個(gè)遍,包括sqlconnection,sqldataadapter,sqlcommand,sqldatareader和dataset。另外還使用了一個(gè)arraylist數(shù)組。arraylist還真是好東西,vs6.0好象是沒(méi)有的吧。(不知道有沒(méi)有,反正我以前好象沒(méi)有用過(guò),呵呵...)整個(gè)代碼實(shí)現(xiàn),我都只在一個(gè)button的click事件中實(shí)現(xiàn)。代碼不多。干脆一同post上來(lái)。
private void button1_click(object sender, system.eventargs e)
{
string strconn = "data source=localhost;initial catalog=pubs;" + "integrated security=sspi";
string strsql = "select name from sysobjects where xtype='u' and status>=0";
sqlconnection sqlconn = new sqlconnection(strconn);
sqlcommand sqlcomm = new sqlcommand(strsql,sqlconn);
sqldatareader sqlread = null;
dataset ds = null;
arraylist al = new arraylist();
if(sqlconn .state == connectionstate.closed) sqlconn.open();
try
{
sqlread = sqlcomm.executereader();
while(sqlread.read())
{
string strtablename = sqlread.getvalue(0).tostring();
al.add(strtablename);
}
sqlread.close();
for(int i =0;i<al.count;i++)
{
string strtable = "select * from "+al[i].tostring();
sqldataadapter sqladapter = new sqldataadapter(sqlcomm);
ds = new dataset();
sqlread.close();
sqladapter.fill(ds,al[i].tostring());
ds.writexml(al[i].tostring()+".xml");
}
messagebox.show("finish it!");
}
catch(exception e)
{
messagebox.show(e.tostring());
}
finally
{
if(sqlconn.state == connectionstate.closed) sqlconn.close();
}
}
沒(méi)有最好,只求更好。如果那位高手不幸看到了這篇post,并且認(rèn)為還有更好的解決方案,歡迎回復(fù)討論!
新聞熱點(diǎn)
疑難解答
圖片精選