我正在尝试使用 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/