【问题标题】:Getting a Response from a MySQL database when updating in VB.net在 VB.net 中更新时从 MySQL 数据库获取响应
【发布时间】:2013-08-12 13:08:37
【问题描述】:

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

多年来一直使用它,一切都很好,但我突然想到了。是否可以像我在 phpMyAdmin 中执行删除/更新命令时收到来自数据库的响应,例如“X 行已删除/更新”?

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

【问题讨论】:

    标签: mysql vb.net phpmyadmin database-connection


    【解决方案1】:

    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

    【讨论】:

      【解决方案2】:

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

      Dim rowAffected =  dataUpdate.ExecuteNonQuery()
      

      DbCommand 是每个特定实现使用的基类,DbCommand.ExecuteNonQuery is defined here

      对于 UPDATE、INSERT 和 DELETE 语句,返回值为 受命令影响的行数。对于所有其他类型的 语句,返回值为-1。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-18
        • 1970-01-01
        • 1970-01-01
        • 2021-01-02
        • 2021-11-06
        • 1970-01-01
        相关资源
        最近更新 更多