0

我有一个类似于下面的函数,它使用传入的 SQL 字符串更新我的数据库。

多年来一直使用它,一切都很好,但它只是发生在我身上。在 phpMyAdmin 中执行删除/更新命令时,是否可以从数据库接收到“删除/更新的行数”之类的响应?

Imports MySql.Data.MySqlClient
Function doUpdate(sql)
    Dim DBConnection = ConfigurationManager.ConnectionStrings("dbConn").ConnectionString
    'this is getting the connection string from web.config file.

    Dim connection As MySqlConnection = MySqlConnection(DBConnection)
    Dim dataUpdate As MySqlCommand = MySqlCommand(sql, connection)

    Using connection
        connection.Open()
        Try
            dataUpdate.ExecuteNonQuery()
        Catch ex As Exception
            HttpContext.Current.Response.Write(ex.ToString() & "<hr/>" & InsertSql)
        End Try
    End Using

    ' // I WANT TO RETRIEVE A RESPONSE HERE
    Return DatabaseResponse

end function
4

2 回答 2

0

ExecuteNonQuery 返回受修改影响的行数。

来自 MySQL 参考资料:

执行非查询

针对连接执行 SQL 语句并返回受影响的行数。

返回:受影响的行数

您可以使用 ExecuteNonQuery 执行任何类型的数据库操作,但是返回的任何结果集都将不可用。调用存储过程时使用的任何输出参数都将填充数据,并且可以在执行完成后检索。对于 UPDATE、INSERT 和 DELETE 语句,返回值是受命令影响的行数。对于所有其他类型的语句,返回值为 -1。

http://dev.mysql.com/doc/refman/5.0/es/connector-net-examples-mysqlcommand.html#connector-net-examples-mysqlcommand-executenonquery

于 2013-08-12T13:14:25.560 回答
0

MySqlCommand.ExecuteNonQuery返回受命令影响的行数。
所以只要读取ExecuteNonQuery的返回值就好了.....

Dim rowAffected =  dataUpdate.ExecuteNonQuery()

DbCommand is the base class used by every specific implementation and DbCommand.ExecuteNonQuery is defined here

For UPDATE, INSERT, and DELETE statements, the return value is the number of rows affected by the command. For all other types of statements, the return value is -1.

于 2013-08-12T13:14:32.947 回答