mysql - 如何使用 C# Visual Studio 执行 MySql 存储过程

标签 mysql c visual-studio

我正在尝试使用 C# 在 MySql 中执行存储过程。

如果我从 MySql WorkBench 执行存储过程,它完全可以正常工作:

call  **DB.spName()**;

Time    Action  Message Duration / Fetch 

3 1 10:46:07 调用 DB.spName() 返回 9 行 0.187 秒/0.000 秒

当我从代码中执行存储过程时,没有错误,但它不返回任何记录:

static String sqlCnn = ";server=localhost;user id=root; database=DB; password=xxxx; Allow Zero Datetime=True; Convert Zero Datetime=True; SslMode=none;";

MySqlConnection Conn = new MySqlConnection();
Conn.ConnectionString = sqlCnn;

try
{
    MySqlCommand cmd = new MySqlCommand("spName", Conn);
    cmd.CommandType = CommandType.StoredProcedure;

    Conn.Open();

    MySqlDataReader drAR = cmd.ExecuteReader();
}

我确信 spName 存在并且代码找到它(因为我更改了名称,并且使用其他名称它会返回错误“存储过程不存在”),但我不知道知道为什么它是空的

最佳答案

MySqlDataReader drAR = cmd.ExecuteReader(); 不读取任何数据。您需要按如下方式迭代返回的行:

using (var reader = cmd.ExecuteReader())
{
    while (reader.Read())
    {
        // do something with reader.GetValue(0), reader.GetString(1), etc.
    }
}

关于mysql - 如何使用 C# Visual Studio 执行 MySql 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57151948/

相关文章:

mysql - 在mysql和vb.net上插入数据

c - 确定数据包类型是 IPv4 还是 IPv6

c - 如何优化此功能? (使用几乎所有的处理能力)

php mysql-将 mysql_fetch_array() 结果放入字符串中并用逗号分隔字符串

PHP foreach 数据库结果

c - 只打印字符串的最右边部分

.net - 为什么 Visual Studio 2012 会引用错误版本的程序集?

visual-studio - Visual Studio 的导航栏是否有热键?

c# - 这个方法在 CUIT 上的目的是什么?

php - 在 Magento 的高级搜索页面中更改属性排序