主题:vb.net连数据库后数据更新(updata)的问题
lenlens
[专家分:0] 发布于 2006-12-10 13:07:00
用如下代码可以实现对表1里的123456号同学的姓名改成'同学1':
Dim cmd As New OleDbCommand("update 表1 set 姓名='同学1' where 学号='123456'", Me.OleDbConnection1)
请问如何实现列名'姓名'是参数的更新呢?
我想实现如下的代码功能,让同学选择要更新的列新这个变量a:
Dim cmd As New OleDbCommand("update 表1 set 变量a='同学1' where 学号='123456'", Me.OleDbConnection1)
因为这个表有很多列,每一个列来写一句更新语句,再根据判断调用就不太好吧
请问有没有别的可以实现这种功能的写法?
回复列表 (共3个回复)
沙发
anlige [专家分:270] 发布于 2006-12-10 20:52:00
下面是我的一部分代码
你看看吧!
dim cnn as oledbconnection
dim cmd as oledbcommand
dim cnnstr as string
dim str as string
cnnstr="provider=microsoft.jet.oledb.4.0;data source="&server.mappath("/data/mydata.mdb")
cnn=new oledbconnection(cnnstr)
cnn.open()
str="update ganshi set 序号=@序号,所属部门=@所属部门,姓名=@姓名,专业年级=@专业年级,宿舍号=@宿舍号,联系方式=@联系方式,QQ=@QQ,Email=@Email where 姓名=@key"
cmd=new oledbcommand(str,cnn)
cmd.parameters.add(new oledbparameter("@序号",oledbtype.char,3))
cmd.parameters.add(new oledbparameter("@所属部门",oledbtype.char,10))
cmd.parameters.add(new oledbparameter("@姓名",oledbtype.char,10))
cmd.parameters.add(new oledbparameter("@专业年级",oledbtype.char,30))
cmd.parameters.add(new oledbparameter("@宿舍号",oledbtype.char,30))
cmd.parameters.add(new oledbparameter("@联系方式",oledbtype.char,20))
cmd.parameters.add(new oledbparameter("@QQ",oledbtype.char,20))
cmd.parameters.add(new oledbparameter("@Email",oledbtype.char,40))
cmd.parameters.add(new oledbparameter("@key",oledbtype.char))
dim tx(8) as textbox
tx(1)=e.item.cells(1).controls(0)
tx(2)=e.item.cells(2).controls(0)
tx(3)=e.item.cells(3).controls(0)
tx(4)=e.item.cells(4).controls(0)
tx(5)=e.item.cells(5).controls(0)
tx(6)=e.item.cells(6).controls(0)
tx(7)=e.item.cells(7).controls(0)
tx(8)=e.item.cells(8).controls(0)
cmd.parameters("@key").value=dg.datakeys(e.item.itemindex)
cmd.parameters("@序号").value=tx(1).text
cmd.parameters("@所属部门").value=tx(2).text
cmd.parameters("@姓名").value=tx(3).text
cmd.parameters("@专业年级").value=tx(4).text
cmd.parameters("@宿舍号").value=tx(5).text
cmd.parameters("@联系方式").value=tx(6).text
cmd.parameters("@QQ").value=tx(7).text
cmd.parameters("@Email").value=tx(8).text
cmd.executenonquery()
cnn.close()
板凳
lenlens [专家分:0] 发布于 2006-12-10 21:50:00
楼上好像没明白我的意思吧```
我是想实现更改的字段可以动态选择
在下面的更新语句中:
Dim cmd As New OleDbCommand("update 表1 set 变量a='同学1' where 学号='123456'", Me.OleDbConnection1)
变量a是要更新的那一列的列名,我希望这个列名可以动态选择,请问如何实现?
3 楼
anlige [专家分:270] 发布于 2006-12-10 22:04:00
可以把变量a用一个dropdownlist来存储啊!然后设置的数据来源为你要使用的那个表(用程序来设置,例如t1.datasource=dt,dt为datatable的一个事例)!
其中属性为
<asp:dropdownlist id="t1" autopostback="true" onselectedindexchanged="b3_click" runat="server" BackColor="#FFFFC0" ForeColor="#8080FF" datatextfield="姓名" datavaluefield="姓名" width="79px"></asp:dropdownlist>
这个 datatextfield="姓名" datavaluefield="姓名"
来获取你要使用的字段
我用这个方法是成功的!
我来回复