受影响的行数

时间:2011-07-12 15:08:12

标签: asp.net sql sql-server-2005 tsql .net-3.5

更新1:

这看起来不错吗?

Dim objSqlConnection As SqlConnection
Dim objSqlCommand As SqlCommand

Dim intAffectedRowCount As Integer

Function update_function() As Integer
    Using objSqlConnection = New SqlConnection(System.Configuration.ConfigurationManager.AppSettings("connectionString"))
        objSqlCommand = New SqlCommand("update table1 set col1 = @col1 where id = @id", objSqlConnection)

        objSqlCommand.Parameters.Add("@col1", SqlDbType.VarChar, 255).Value = strData
        objSqlCommand.Parameters.Add("@id", SqlDbType.Int, 4).Value = intID

        objSqlCommand.Connection.Open()
        intAffectedRowCount = objSqlCommand.ExecuteNonQuery()
        objSqlCommand.Connection.Close()
    End Using

    return intAffectedRowCount
End Function

这会关闭所有正常打开的东西吗?


原始问题:

我目前正在使用以下代码更新数据库表中的行:

objSQLConnection = New SqlConnection(System.Configuration.ConfigurationManager.AppSettings("connString"))

objSQLCommand = New SqlCommand("update table1 set col1 = @col1 where id = @id", objSQLConnection)

objSQLCommand.Parameters.Add("@col1", SqlDbType.VarChar, 255).Value = strCol1Data
objSQLCommand.Parameters.Add("@id", SqlDbType.Int, 4).Value = intID

objSQLCommand.Connection.Open()
objSQLCommand.ExecuteNonQuery()
objSQLCommand.Connection.Close()

如果我在sql server中运行该查询,它会返回一条消息,说明" 1行受影响"。

可能可以从asp.net访问相同的消息,但我不知道如何访问它。

即使我得到一个计数,即1。

任何人都知道如何计算受影响的行数?

1 个答案:

答案 0 :(得分:3)

来自SqlCommand.ExecuteNonQuery的文档:

  

返回值

     

类型:System.Int32   受影响的行数。

因此,当您执行ExecuteNonQuery并且当前忽略返回值时,请不要忽略它:)

(您还应该使用Using语句来确保不泄漏连接等。)