首页 > 解决方案 > 如何使用 C# Visual Studio 执行 MySql 存储过程

问题描述

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

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存在并且代码找到它(因为我更改了名称,并且使用其他名称返回错误“存储过程不存在”),但我不知道为什么它是空的

标签: mysqlcvisual-studio

解决方案


MySqlDataReader drAR = cmd.ExecuteReader();不读取任何数据。您需要遍历返回的行,如下所示:

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

推荐阅读