前无古人后无来者史无前例错综复杂变幻莫测回肠荡气余码绕梁让读者看得三月不知肉味之究极错误代码~~!!各位长老速进~~
tylrr 2005-05-09 10:04:55 可以正常运行,却无法实现编辑功能的代码~~~~请帮忙看看`~谢谢~
我修改了dal_updatecmd (修改数据功能代码) 之后,代码可以正常运行,编译,显示页面.但是选择一行数据修改后,点击"修改"却无法修改数据.而且没有出错提示.本来是正常的,但我在sql语句中使用了参数之后就无法正常编辑信息了,而且没有出错提示.我使用的是Access数据库.需要测试代码数据库的长老请留下邮箱~~~
我已经问过很多大师,都无法解释这一超自然现象.麻烦各位长老帮我看看~~~谢谢 鞠躬~~~
这是程序代码段
<%@ Page Language="VB" Debug ="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">
Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If Not IsPostBack Then
binddatalist()
End If
End Sub
Sub binddatalist()
Dim connstr As String = "Provider=microsoft.jet.oledb.4.0;data source=" & Server.MapPath("db1.mdb")
Dim myconn As Data.OleDb.OleDbConnection = New Data.OleDb.OleDbConnection(connstr)
Dim cmd As Data.OleDb.OleDbCommand = New Data.OleDb.OleDbCommand("select * from shop_sale", myconn)
myconn.Open()
Dim mydatareader As Data.OleDb.OleDbDataReader = cmd.ExecuteReader()
DataList1.DataSource = mydatareader
DataList1.DataBind()
mydatareader.Close()
myconn.Close()
End Sub
Sub dal_editcmd(ByVal s As Object, ByVal e As DataListCommandEventArgs)
DataList1.EditItemIndex = e.Item.ItemIndex
binddatalist()
End Sub
Sub dal_cancelcmd(ByVal s As Object, ByVal e As DataListCommandEventArgs)
DataList1.EditItemIndex = -1
binddatalist()
End Sub
Sub dal_delcmd(ByVal s As Object, ByVal e As DataListCommandEventArgs)
Dim connstr As String = "Provider=microsoft.jet.oledb.4.0;data source=" & Server.MapPath("db1.mdb")
Dim myconn As Data.OleDb.OleDbConnection = New Data.OleDb.OleDbConnection(connstr)
Dim saleid As String = DataList1.DataKeys(e.Item.ItemIndex)
Dim cmd As Data.OleDb.OleDbCommand = New Data.OleDb.OleDbCommand("delete * from shop_sale where numsal_saleid=" + saleid, myconn)
myconn.Open()
cmd.ExecuteNonQuery()
myconn.Close()
DataList1.EditItemIndex = -1
binddatalist()
End Sub
Sub dal_updatecmd(ByVal s As Object, ByVal e As DataListCommandEventArgs)
Dim saleid As String
dim sname As TextBox= e.Item.FindControl("sname")
dim sclass As TextBox= e.Item.FindControl("sclass")
Dim stype As TextBox= e.Item.FindControl("stype")
Dim soffer As TextBox= e.Item.FindControl("soffer")
Dim ssoffer As TextBox= e.Item.FindControl("ssoffer")
Dim samount As TextBox= e.Item.FindControl("samount")
Dim sleft As TextBox= e.Item.FindControl("sleft")
Dim sintro As TextBox= e.Item.FindControl("sintro")
Dim sphoto As TextBox= e.Item.FindControl("sphoto")
Dim sreview As TextBox= e.Item.FindControl("sreview")
saleid = DataList1.DataKeys(e.Item.ItemIndex)
Dim connstr As String = "Provider=microsoft.jet.oledb.4.0;data source=" & Server.MapPath("db1.mdb")
Dim myconn As Data.OleDb.OleDbConnection = New Data.OleDb.OleDbConnection(connstr)
dim cmdstr as string = "update shop_sale set txtsal_name=@sname,txtsal_class=@sclass,txtsal_type=@stype,monsal_offer=@soffer,monsal_soffer=@ssoffer,numsal_amount=@samount,numsal_left=@sleft,remsal_intro=@sintro,remsal_review=@sreview,httsal_photo=@sphoto where numsal_saleid=@sid"
Dim updatecmd As Data.OleDb.OleDbCommand
updatecmd = New Data.OleDb.OleDbCommand ( cmdstr,myconn )
updatecmd.Parameters.Add("@sid", Data.OleDb.OleDbType.Char).Value = saleid
updatecmd.Parameters.Add("@sname", Data.OleDb.OleDbType.Char).Value = sname.Text
updatecmd.Parameters.Add("@stype", Data.OleDb.OleDbType.Char).Value = stype.Text
updatecmd.Parameters.Add("@sclass", Data.OleDb.OleDbType.Char).Value = sclass.Text
updatecmd.Parameters.Add("@soffer", Data.OleDb.OleDbType.Char).Value = soffer.Text
updatecmd.Parameters.Add("@ssoffer", Data.OleDb.OleDbType.Char).Value = ssoffer.Text
updatecmd.Parameters.Add("@samount", Data.OleDb.OleDbType.Char).Value = samount.Text
updatecmd.Parameters.Add("@sleft", Data.OleDb.OleDbType.Char).Value = sleft.Text
updatecmd.Parameters.Add("@sintro", Data.OleDb.OleDbType.Char).Value = sintro.Text
updatecmd.Parameters.Add("@sphoto", Data.OleDb.OleDbType.Char).Value = sphoto.Text
updatecmd.Parameters.Add("@sreview", Data.OleDb.OleDbType.Char).Value = sreview.Text
myconn.Open()
updatecmd.ExecuteNonQuery()
myconn.Close()
DataList1.EditItemIndex = -1
binddatalist()
End Sub
</script>