内容:.net与xml的小软件(100多行左右)
注意:如果转贴,请一定注明出处,以及作者
//=================================开始===============
//======================准备工作===========================
再建立项目的文件夹的bin文件夹下
创建两个文件
一个是”myxml.xml”
一个是”myxml.mdb”
这里面有一个表”users”三个字段名”nameid”,”age”,”faverity”
再转到图形界面
单击”工具箱”的”数据”把”oledbconnection”,” oledbcomman”,”dataset”,”oledbdataadapter”
拉入窗体界面
依次对这几个控件进行操作
我的文件夹是d:\vbproject\windowsapplication1
d:\vbproject\windowsapplication1/bin/myxml.xml
d:\vbproject\windowsapplication1/bin/myxml.mdb
//======================准备结束==============
(1)首先在机子上要有.net framework
打开vs.net依次展开:文件-新建-项目;
再选择visual-basic-项目-windows应用程序
这就是所需要一个小界面
现在一步步的来写代码,完成它的功能
首先来完成添加功能:
我们目标是:通过这三个文本框(姓名,年龄,爱好)来添加到数据库中。然后再把这个数据库的表保存成xml格式
双击”添加”按钮
在里面写下以下这些代:(vb写的语言,不是c#)
if textbox1.text <> “” and textbox2.text <> “” and textbox3.text <> “” then
在三个文本框都不为空时,执行以下操作,
否则出错
dim strsel as string
strsel = “select * from users where nameid=” & textbox1.text & “”
建立一个查询字符串,看要要添加的姓名,是否已在数据中存在,如果不存在就可以添加
oledbcommand1 = new oledbcommand
me.oledbcommand1.commandtext = strsel
me.oledbcommand1.connection = oledbconnection1
oledbconnection1.open()
try
进行异常处理
dim reader as oledbdatareader = oledbcommand1.executereader()
if reader.read() then
通过datareader来读取,如果读得到,表明数据在有这个姓名存在,不添加;
listbox1.items.add(“已经有该记录!”)
else
reader.close()
要对数据库进行操作,首先把datareader关掉;
dim insert as string
insert = “insert into users(nameid,age,faverity) values(” & textbox1.text & “,” & textbox2.text & “,” & textbox3.text & “)”
建立一个插入字符串
oledbcommand1 = new oledbcommand
me.oledbcommand1.commandtext = insert
me.oledbcommand1.connection = me.oledbconnection1
me.oledbcommand1.executenonquery()
listbox1.items.add(“添加成功!!”)
以下是把数据库的数据保存为xml格式
dataset1 = new dataset
oledbdataadapter1 = new oledbdataadapter(“select * from users”, oledbconnection1)
oledbdataadapter1.fill(dataset1, “users”)
dataset1.writexml(“myxml.xml”)
end if
catch ex as exception
listbox1.items.add(“errors!”)
end try
oledbconnection1.close()
else
messagebox.show(“请输入完整!!”)
end if
//==================接下来是对数据库进行查询===================
双击”查找”按钮
写入以下代码
if textbox4.text <> “” then
还是和上面一样如果文本框为空,就不执行,如果不为空,就执行下面的操作
listbox1.items.clear()
首先把listbox清空
dim searchtext as string
searchtext = textbox4.text
oledbconnection1.open()
dim selstring as string
selstring = “select * from users where nameid like %” & searchtext & “%”
建立查询字符串,可以支持模糊查询
oledbcommand1 = new oledbcommand
me.oledbcommand1.commandtext = selstring
me.oledbcommand1.connection = oledbconnection1
以下几句是显示匹配的条数
dataset1 = new dataset
oledbdataadapter1 = new oledbdataadapter(selstring, oledbconnection1)
oledbdataadapter1.fill(dataset1, “users”)
listbox1.items.add(“共有” & dataset1.tables(“users”).rows.count & “条匹配的记录”)
listbox1.items.add(“————————————————————-“)
try
进行异常处理
dim cmdreader as oledbdatareader = oledbcommand1.executereader()
while cmdreader.read
注意这里要用while
不然就无法进行循环,就只能进行一次查询
listbox1.items.add(cmdreader(“nameid”).tostring())
listbox1.items.add(cmdreader(“age”).tostring())
listbox1.items.add(cmdreader(“faverity”).tostring())
listbox1.items.add(“———————————-“)
end while
cmdreader.close()
oledbconnection1.close()
catch ex as exception
listbox1.items.add(“errors”)
end try
else
end if
//================再把来xml文档,以xml形式显示在listbox里面
双击”xml文档” 写进下面这些代码:
listbox1.items.clear()
清空listbox
dim xtr as xmltextreader = new xmltextreader(“myxml.xml”)
创建成一个xmltextreader读取”myxml.xml”文档
while xtr.read
select case (xtr.nodetype)
咱们用select case 形式来选择xml节点类型
case xmlnodetype.xmldeclaration
先从listbox里写进xml声明=====xmldeclaration
listbox1.items.add(“<?xml version=1.0 encoding=gb2312?>”)
再依次显示节点的名称,值
包括根节点
case xmlnodetype.element
listbox1.items.add(“<” & xtr.name & “>”)
case xmlnodetype.text
listbox1.items.add(xtr.value)
case xmlnodetype.endelement
listbox1.items.add(“</” & xtr.name & “>”)
end select
end while
xtr.close()
关闭xmltextreader
//========再把数据库中所有数据显示在listbox中========
双击”查看全部”按钮
写入下面的一些代码:
listbox1.items.clear()
这些代码大家应该可以看得懂了
oledbconnection1.open()
dim selall as string
selall = “select * from users”
oledbcommand1 = new oledbcommand
me.oledbcommand1.commandtext = selall
me.oledbcommand1.connection = oledbconnection1
try
dim creader as oledbdatareader = oledbcommand1.executereader()
while creader.read
listbox1.items.add(“name: ” & creader(“nameid”).tostring() & “; age :” & creader(“age”).tostring() & “; faverity :” & creader(“faverity”).tostring())
end while
creader.close()
catch ex as exception
listbox1.items.add(“errors”)
end try
oledbconnection1.close()
//==========================再来进完成删除按钮=================
双击”删除”按钮
写入以下的代码
if textbox4.text <> “” then
如果不为空,进行以下操作
listbox1.items.clear()
先清空listbox
oledbconnection1.open()
建立连接
dim delstring as string
delstring = textbox4.text
dim delsel as string
delsel = “select * from users where nameid=” & delstring & “”
创建查询字符串
oledbcommand1 = new oledbcommand
me.oledbcommand1.commandtext = delsel
me.oledbcommand1.connection = oledbconnection1
try
dim selreader as oledbdatareader = oledbcommand1.executereader()
if not selreader.read then
假如读不到,就表明数据库无此数据,无法进行删除操作
messagebox.show(“数据库中无该记录!”)
else
selreader.close()
要对数据进行操作,必须首把datareader关掉
dim delrecord as string
delrecord = “delete * from users where nameid=” & delstring & “”
建立删除字符串sql语句,以上都是
oledbcommand1 = new oledbcommand
me.oledbcommand1.commandtext = delrecord
me.oledbcommand1.connection = oledbconnection1
me.oledbcommand1.executenonquery()
messagebox.show(“删除成功!!”)
再把进行删除操作的数据库,再次把数据库中数据保存成xml文档
dataset1 = new dataset
oledbdataadapter1 = new oledbdataadapter(“select * from users”, oledbconnection1)
oledbdataadapter1.fill(dataset1, “users”)
dataset1.writexml(“myxml.xml”)
end if
catch ex as exception
messagebox.show(ex.message)
finally
oledbconnection1.close()
end try
else
messagebox.show(“请输入你想删除的记录!”)
end if
//======================= 重设按钮=====
textbox1.text = “”
textbox2.text = “”
textbox3.text = “”
listbox1.items.clear()
//============================关闭===============
me.close()
好了这个小软件完成了,有问题的话留言
本程序在.net framework 2003创建
已经进行过测试,完全可以运行