输入字符串的格式不正确??

rainlow 2002-11-12 03:30:27
修改记录时怎么都是显示"必须为价格输入一个数字类型的值"?为价格输入了数字类型的值后还是的.注释掉判断价格是否为数字类型的函数后错误为"输入字符串的格式不正确。"?出错处为mycommand.ExecuteNonQuery()??

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
conn = New SqlConnection("server=wiz02;uid=tree;pwd=tree;database=bookforstudy")
If Not IsPostBack Then
grid_bind()
End If
End Sub
Function PriceIsNotNumberic(ByVal price) As Boolean
If IsNumeric(price) = False Then
Lblmessage.Text = "错误:必须为价格输入一个数字类型的值"
Lblmessage.ForeColor = Color.Red

grid_bind()
Return (True)
Else
Return (False)
End If
End Function

Private Sub mydatagrid_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles mydatagrid.UpdateCommand
Dim updatecmd As String = _
"update book set ID= @ID,author= @author,publisher= @publisher,price= @price,title= @title where ID= @ID"
Dim mycommand As SqlCommand = New SqlCommand(updatecmd, conn)
mycommand.Parameters.Add(New SqlParameter("@id", SqlDbType.Int, 10))
mycommand.Parameters.Add(New SqlParameter("@author", SqlDbType.VarChar, 50))
mycommand.Parameters.Add(New SqlParameter("@publisher", SqlDbType.VarChar, 50))
mycommand.Parameters.Add(New SqlParameter("@price", SqlDbType.Money, 10))
mycommand.Parameters.Add(New SqlParameter("@title", SqlDbType.VarChar, 50))
mycommand.Parameters("@ID").Value = mydatagrid.DataKeys(e.Item.ItemIndex)

Dim cols() As String = {"@author", "@publisher", "@price", "@title"}
Dim numcols As Integer = e.Item.Cells.Count

Dim i As Integer
For i = 1 To numcols - 2 '跳过ID与编辑列
Dim currenttextbox As TextBox
currenttextbox = e.Item.Cells(i).Controls(0)
Dim colvalue As String = currenttextbox.Text
If i = numcols - 3 And PriceIsNotNumberic(colvalue) Then Exit Sub
mycommand.Parameters(cols(i - 1)).Value = colvalue
Next
conn.Open()
Try
mycommand.ExecuteNonQuery()
Lblmessage.Text = "编号为<b>" _
& CInt(mycommand.Parameters("@id").Value) _
& "</b>的记录已被更新!"
Lblmessage.ForeColor = Color.Green
mydatagrid.EditItemIndex = -1
Catch exp As SqlException
Lblmessage.Text = "错误:修改记录失败,请检查输入信息是否正确!"
Lblmessage.ForeColor = Color.Red

End Try
conn.Close()
grid_bind()

End Sub
...全文
127 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiajianfeng 2002-11-12
  • 打赏
  • 举报
回复
这说明了你的返回值都为true,也就是你的函数不能起到判断数字的作用.
rainlow 2002-11-12
  • 打赏
  • 举报
回复
奇怪了,加上xiajianfeng的response.write"........."
怎么变成了不管输入什么都是返回true?
xiajianfeng 2002-11-12
  • 打赏
  • 举报
回复
If i = numcols - 3 And PriceIsNotNumberic(colvalue) Then Exit Sub
改成
If i = numcols - 3 And PriceIsNotNumberic(colvalue) Then Response.Write(PriceIsNotNumberic(colvalue)) Response.End()
看看返回的值是否正确.
rainlow 2002-11-12
  • 打赏
  • 举报
回复
绑定数据
Sub grid_bind()
Dim selectcommand As New SqlCommand("select * from book", conn)
Dim ds As New DataSet()
Dim adapter As SqlDataAdapter
adapter = New SqlDataAdapter(selectcommand)
adapter.Fill(ds, "book")

mydatagrid.DataSource = New DataView(ds.Tables("book"))
mydatagrid.DataBind()
End Sub
xiajianfeng 2002-11-12
  • 打赏
  • 举报
回复
你的grid_bind()函数是什么功能呀?
rainlow 2002-11-12
  • 打赏
  • 举报
回复
to:xiajianfeng
不行的啊!!
xiajianfeng 2002-11-12
  • 打赏
  • 举报
回复
试试:
去掉Not IsPostBack

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧