毕业设计之学生个人信息修改,望高手指点迷津!
Dim ModiString As StringcmdOk.Enabled = Not cmdOk.Enabled
cmdClose.Enabled = Not cmdClose.Enabled
cmdReg.Enabled = Not cmdReg.Enabled
Try
If cmdMod.Text = "修改" Then
cmdMod.Text = "确认修改"
Dim SQLStr As String = "Select * From StudentInfor where Snum='" & Snum & "'" '设置SQL命令字符串
MyCom.CommandText = SQLStr '设置要执行的命令
MyDs = New DataSet '产生新的数据集
MyDataAdapter.Fill(MyDs, "StudentInfor") '填充数据集
Navigator = Me.BindingContext(MyDs, "StudentInfor") '用Navigator绑定StudentInfor表
txtSnum.Text = MyDs.Tables("StudentInfor").Rows(Navigator.Position)("Snum").ToString()
txtSname.Text = MyDs.Tables("StudentInfor").Rows(Navigator.Position)("Sname").ToString()
If MyDs.Tables("StudentInfor").Rows(Navigator.Position)("S易做图").ToString() = True Then
Option1.Checked = True
Else
Option2.Checked = True
End If
txtSpeople.Text = MyDs.Tables("StudentInfor").Rows(Navigator.Position)("Speople").ToString()
txtClass.Text = MyDs.Tables("StudentInfor").Rows(Navigator.Position)("Sclass").ToString()
dtBirth.Text = MyDs.Tables("StudentInfor").Rows(Navigator.Position)("Sbirth").ToString()
dtClass.Text = MyDs.Tables("StudentInfor").Rows(Navigator.Position)("Sschool").ToString()
txtSadd.Text = MyDs.Tables("StudentInfor").Rows(Navigator.Position)("Sadd").ToString()
txtDad.Text = MyDs.Tables("StudentInfor").Rows(Navigator.Position)("Sdad").ToString()
txtMum.Text = MyDs.Tables("StudentInfor").Rows(Navigator.Position)("Smum").ToString()
txtDwork.Text = MyDs.Tables("StudentInfor").Rows(Navigator.Position)("Sdadwork").ToString()
txtMwork.Text = MyDs.Tables("StudentInfor").Rows(Navigator.Position)("Smumwok").ToString()
txtDtel.Text = MyDs.Tables("StudentInfor").Rows(Navigator.Position)("Sdadtel").ToString()
txtMtel.Text = MyDs.Tables("StudentInfor").Rows(Navigator.Position)("Smumtel").ToString()
txtMemo.Text = MyDs.Tables("StudentInfor").Rows(Navigator.Position)("Smemo").ToString()
Else
cmdMod.Text = "修改"
If Len(txtSnum.Text) <> 10 Then
MsgBox("学号必须为10位,请重新输入!", MsgBoxStyle.OKOnly + MsgBoxStyle.Exclamation, "提示信息")
cmdMod.Text = "确认修改"
Exit Sub
End If
'形成SQL-UPDATE语句的字符串并作为命令文本
ModiString = "Update StudentInfor Set Snum='" + txtSnum.Text + "'"
ModiString = ModiString + ",Sname='" + txtSname.Text + "'"
ModiString = ModiString + ",S易做图=" + Str(IIf(Option1.Checked, True, False))
ModiString = ModiString + ",Speople='" + txtSpeople.Text + "'"
ModiString = ModiString + ",Sclass='" + txtClass.Text + "'"
ModiString = ModiString + ",Sbirth='" + dtBirth.Text + "'"
ModiString = ModiString + ",Sschool='" + dtClass.Text + "'"
ModiString = ModiString + ",Sadd='" + txtSadd.Text + "'"
ModiString = ModiString + ",Sdad='" + txtDad.Text + "'"
ModiString = ModiString + ",Smum='" + txtMum.Text + "'"
ModiString = ModiString + ",Sdadwork='" + txtDwork.Text + "'"
ModiString = ModiString + ",Smumwork='" + txtMwork.Text + "'"
ModiString = ModiString + ",Sdadtel='" + txtDtel.Text + "'"
ModiString = ModiString + ",Smumtel='" + txtMtel.Text + "'"
ModiString = ModiString + ",Smemo='" + txtMemo.Text + "'"
MyCom.CommandText = ModiString + " where Snum= '" + MyDs.Tables("StudentInfor").Rows(Navigator.Position)("Snum").ToString() + "'"
MyCom.ExecuteNonQuery() '执行SQL-UPDATE命令
MyDataAdapter.Update(MyDs, "StudentInfor") '更新操作,把记录集中的内容写入到数据源中
MyDs.Clear() '清除记录集
MsgBox("该考生信息修改成功!", MsgBoxStyle.OKOnly + MsgBoxStyle.Information, "提示信息")
End If
Catch
MsgBox("该考生信息无法修改!请检查原因!", MsgBoxStyle.OKOnly + MsgBoxStyle.Information, "提示信息")
End Try
运行没有错误,就在"
[MyCom.ExecuteNonQuery() '执行SQL-UPDATE命令
MyDataAdapter.Update(MyDs, "StudentInfor") '更新操作,把记录集中的内容写入到数据源中
MyDs.Clear() '清除记录集
MsgBox("该考生信息修改成功!", MsgBoxStyle.OKOnly + MsgBoxStyle.Information, "提示信息")
End If
Catch
MsgBox("该考生信息无法修改!请检查原因!", MsgBoxStyle.OKOnly + MsgBoxStyle.Information, "提示信息")
End Try]
这往后就有问题了,总是说:该考生信息无法修改!请检查原因!,不知道是什么原因,请教高手指点迷津!
--------------------编程问答-------------------- MsgBox("该考生信息无法修改!请检查原因!", MsgBoxStyle.OKOnly + MsgBoxStyle.Information, "提示信息")
改成msgbox(ex.tostring)
运行再试……
你不让他报错误信息,它怎么报给你原因?
数据的更新应该都有一个建立连接、更新数据、断开连接的过程,感觉是数据库连接的问题。 --------------------编程问答-------------------- 1楼前辈,加上去后提示ex没有定义呢
我想问问上面的代码有问题么? --------------------编程问答-------------------- ModiString = "Update StudentInfor Set Snum='" + txtSnum.Text + "'"
ModiString = ModiString + ",Sname='" + txtSname.Text + "'"
ModiString = ModiString + ",S易做图=" + Str(IIf(Option1.Checked, True, False))
这种写法一看就知道是新手写的,呵。
你可以用断点跟踪出这条SQL语句,在sql查询分析器里跑一下看看,是你这条语句有错误。
还有,你的代码不要这样写,stra=stra+strb 用 stra += strb 就行.
--------------------编程问答-------------------- Catch ex As Exception
massagebox.show(ex) --------------------编程问答-------------------- 你走下面的话 dataset的声明没有 还有VB的我不是很熟悉 可能你用dataadapter填充DATASET有问题 因该是填充datatable吧 你把Myds 改成myds.tables(0) 看看
用dataadapter的话这句MyCom.ExecuteNonQuery()有点多余
MyDataAdapter..fill(MyDs.tables("StudentInfor"),mycom ) 试试 --------------------编程问答-------------------- 刚看错了 你if走下面的话是更新 到MyCom.ExecuteNonQuery()这里就可以了 下面可以省略了
MyDataAdapter.Update(MyDs, "StudentInfor") '更新操作,把记录集中的内容写入到数据源中
MyDs.Clear() '清除记录集
--------------------编程问答-------------------- 1楼前辈,还是不行呢!我把
[MyDataAdapter.Update(MyDs, "StudentInfor") '更新操作,把记录集中的内容写入到数据源中
MyDs.Clear() '清除记录集 ]
这两句删除点也是说:该考生信息修改成功!呢,还有什么解决方法么?请指教 --------------------编程问答-------------------- 帮你UP吧~
这代码~~ --------------------编程问答-------------------- 说错了,是6楼前辈 --------------------编程问答-------------------- 8楼朋友是什么意思啊?
我菜鸟 --------------------编程问答-------------------- 1楼前辈,
我照你说的做了,然后提示说:"至少一个参数没有指定值" --------------------编程问答-------------------- 你把代码发给我 我看看
66953324 --------------------编程问答-------------------- 等待牛人来答.
补充:.NET技术 , VB.NET