【发布时间】:2021-08-23 07:56:58
【问题描述】:
Dim con As SqlConnection = New SqlConnection("Data Source=DESKTOP-Q1UQIBI\SQLEXPRESS;Initial Catalog=Admoresystem;Integrated Security=True")
Dim query1 As String = "UPDATE OrderSheet SET OrderName=@ordername,Aux=@aux,Description=@description,Status=@status,Auxstatus=@auxstatus,TypeDeliveryDestination=@typedeliverydestination,TrackingnNumber=@trackingnumber,TurnOverDays=@turnoverdays where OrderID=@OrderID"
Dim cmd As SqlCommand = New SqlCommand(query1, con)
cmd.Parameters.AddWithValue("@OrderID", Val(txtOrderID.Text.Trim.ToString))
' Dim date2 As String = OrderDate.Text.ToString()
'Dim startDateTimee As String = OrderDate.Text.Trim()
' cmd.Parameters.AddWithValue("@orderdate", SqlDbType.DateTime).Value = OrderDate.Text
cmd.Parameters.AddWithValue("@ordername", txtOrderName.Text.Trim.ToString)
cmd.Parameters.AddWithValue("@aux", txtAux.Text.Trim.ToString)
cmd.Parameters.AddWithValue("@description", txtDescription.Text.Trim.ToString)
cmd.Parameters.AddWithValue("@status", txtStatus.Text.Trim.ToString)
cmd.Parameters.AddWithValue("@auxstatus", txtAUXStatus.Text.Trim.ToString)
cmd.Parameters.AddWithValue("@typedeliverydestination", TypeDeliveryDestination.Text.Trim.ToString)
cmd.Parameters.AddWithValue("@trackingnumber", txtTrackingNumber.Text.Trim.ToString)
' Dim est As String = EstimatedDeliveryDate.Text.ToString()
' cmd.Parameters.Add("@estdeliverydate", SqlDbType.DateTime).Value = EstimatedDeliveryDate.Text
cmd.Parameters.AddWithValue("@turnoverdays", txtTurnOverDays.Text.Trim.ToString)
con.Open()
cmd.ExecuteNonQuery()
con.Close()
con.Dispose()
Response.Redirect("DetailPage.aspx")
'Controlsclear()
【问题讨论】:
-
您应该在此处发布问题之前调试您的代码。如果您已经阅读了您应该使用的类型和成员,那么您就会知道
ExecuteNonQuery返回受操作影响的记录数。如果没有抛出异常,该数字会告诉您数据是否已保存(非零)或未保存(零)。如果是,那么它就是,你错了。如果不是,那么数据库中显然没有与您的WHERE子句匹配的记录,因此我们无法告诉您应该是什么。 -
您编写代码的方式表明您并没有真正考虑周全。你会得到一堆
TextBoxes中的Text,在修剪它们之后,调用ToString。在String上调用ToString有什么意义?它不会受到伤害,但事实上你在做一些毫无意义的事情意味着你没有考虑过你在做什么。另外,你为什么要打电话给Val来获取ID?当然你的OrderID不是类型Double,那么Val有什么用呢?它会做的最好的事情是修剪非数字字符,但如果需要,你应该告诉用户,而不是忽略它们。 -
最后——我应该带头的——只有代码的问题是不可接受的。一个问题必须是一个实际的问题,对问题有完整和清晰的解释,并且我们可以回答清楚的问题。如果需要,它应该由代码和图像支持,但它们是额外的,而不是全部。标题应该是一个摘要,而不是整个问题。
-
除了我 100% 同意的 cmets 中提到的所有其他内容之外,您在使用 AddWithValue 时可能需要小心一点。它可以对您进行一些隐式类型转换并导致意外结果
-
大家好,我已经编写了简单的查询来更新数据。我的前辈使用了这些更改,例如 tostring、val 和 trim。另一方面,删除查询运行并删除相同的值。