mysql - 如何使用 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
存在并且代码找到它(因为我更改了名称,并且使用其他名称返回错误“存储过程不存在”),但我不知道为什么它是空的
解决方案
MySqlDataReader drAR = cmd.ExecuteReader();
不读取任何数据。您需要遍历返回的行,如下所示:
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
// do something with reader.GetValue(0), reader.GetString(1), etc.
}
}
推荐阅读
- php - 如何使用 mongodb\driver php 获得“local.oplog.rs”计数
- javascript - 如何在 JavaScript 中做基于斜率的物理
- python - 如何使用一行选择一个数组中没有出现在另一个数组中的最小值?
- typescript - Object.defineProperty(Array.prototype .. TypeScript 中的问题
- apache-spark - Datalab BigQuery 数据到 Dataproc Hadoop 字数
- mysql - brew mysql 和 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
- html - div/spans 在隐式换行后消耗最大宽度
- nuxt.js - Nuxt js 身份验证不适用于@nuxt/proxy
- php - 无法断言两个数组相同
- kubernetes - 将 Google Cloud 中的外部 IP 与 Kubernetes 服务一起使用以将其公开到互联网