SQL 更新语句中的 Trim 个字符?
Trim characters in a SQL update statement?
是否可以对 SQL 更新语句中的列执行 trim?基本上,一旦在我的 gridview 上单击按钮,我希望它从左侧 trim 10 个字符用于列 "Status" 这是否可能在我在下面用于在 gridview 上选择的列的范围内?
Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
If (e.CommandName = "Unlock") Then
Dim index As Integer = Convert.ToInt32(e.CommandArgument)
Dim row As GridViewRow = GridView1.Rows(index)
Try
Dim Con As SqlConnection
Dim cmd As SqlCommand
Con = New SqlConnection
Con.ConnectionString = "Data Source="
Con.Open()
cmd = New SqlCommand
cmd.Connection = Con
'''''Can I trim the status column 10 characters where it is the selected row?'''''''''''
cmd.CommandText = "UPDATE tbltest SET Status = '" & ?????? & "' where row = '" & ???????? & "';"
cmd.ExecuteNonQuery()
Catch ex As System.Exception
End Try
End If
End Sub
有关如何 trim 您的字符串,请参见下文。这不回答如何 select 在 Sql 中的正确记录。您需要弄清楚 Table 中的标识符是什么,并确保您的数据网格使用相同的标识符。理想情况下,标识符是 table 的主键。然后使用参数化查询将其作为参数传递到 WHERE 子句中。
参见sql的SubString方法。您的 sql 查询将是
UPDATE tbltest
SET Status = SubString(Status, 0, CASE WHEN LEN(Status) >= 10 THEN 10 ELSE LEN(Status) END)
where TablePkColumn = @myPkParameter
我添加了一个长度检查,以确保如果可用字符少于 10 个,您不会得到异常,在这种情况下将返回一个空字符串。
其他要点
- 请将您的连接字符串包装在
using
块中,以便连接在您完成后始终关闭。或者使用 finally
块来关闭连接。
- 使用参数化查询而不是字符串连接。这是针对您的 where 子句的,但您应该在查询中使用外部输入的任何地方执行此操作。
是否可以对 SQL 更新语句中的列执行 trim?基本上,一旦在我的 gridview 上单击按钮,我希望它从左侧 trim 10 个字符用于列 "Status" 这是否可能在我在下面用于在 gridview 上选择的列的范围内?
Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
If (e.CommandName = "Unlock") Then
Dim index As Integer = Convert.ToInt32(e.CommandArgument)
Dim row As GridViewRow = GridView1.Rows(index)
Try
Dim Con As SqlConnection
Dim cmd As SqlCommand
Con = New SqlConnection
Con.ConnectionString = "Data Source="
Con.Open()
cmd = New SqlCommand
cmd.Connection = Con
'''''Can I trim the status column 10 characters where it is the selected row?'''''''''''
cmd.CommandText = "UPDATE tbltest SET Status = '" & ?????? & "' where row = '" & ???????? & "';"
cmd.ExecuteNonQuery()
Catch ex As System.Exception
End Try
End If
End Sub
有关如何 trim 您的字符串,请参见下文。这不回答如何 select 在 Sql 中的正确记录。您需要弄清楚 Table 中的标识符是什么,并确保您的数据网格使用相同的标识符。理想情况下,标识符是 table 的主键。然后使用参数化查询将其作为参数传递到 WHERE 子句中。
参见sql的SubString方法。您的 sql 查询将是
UPDATE tbltest
SET Status = SubString(Status, 0, CASE WHEN LEN(Status) >= 10 THEN 10 ELSE LEN(Status) END)
where TablePkColumn = @myPkParameter
我添加了一个长度检查,以确保如果可用字符少于 10 个,您不会得到异常,在这种情况下将返回一个空字符串。
其他要点
- 请将您的连接字符串包装在
using
块中,以便连接在您完成后始终关闭。或者使用finally
块来关闭连接。 - 使用参数化查询而不是字符串连接。这是针对您的 where 子句的,但您应该在查询中使用外部输入的任何地方执行此操作。