c# - 在 Visual Studio C# 中从 mySQL 执行存储过程时无输出

标签 c# mysql

我在数据表的实现中是否做错了什么?这是我第一次尝试通过 Visual Studio 发送查询(只知道如何从 mySQL 查询),所以我可能还很遥远。

没有编译错误,但运行它不会产生任何输出。

using System.Data;
using System.Configuration;
using MySql.Data.MySqlClient;
using System.Collections.Generic;

 public class sp_criteria
{

public DataTable dataTable(string procedureName, Dictionary<string, object> parameterList)
{
    DataTable outputDataTable;


    using (MySqlConnection MySqlConnection = new MySqlConnection("Server=localhost;" +
                                            "Port = 1234" +
                                            "Database=heatco;" +
                                            "Uid=root;" +
                                            "Pwd=123456;"))
        MySqlConnection.Open();
    {
        using (MySqlCommand sqlCommand = new MySqlCommand(procedureName, MySqlConnection))
        {
            sqlCommand.CommandType = CommandType.StoredProcedure;

            if (parameterList != null)
            {
                foreach (string key in parameterList.Keys)
                {
                    string parameterName = key;
                    object parameterValue = parameterList[key];


                    sqlCommand.Parameters.Add(new MySqlParameter("intMaxCFM", 10000));
                    sqlCommand.Parameters.Add(new MySqlParameter("intMinCFM", 2223));
                    sqlCommand.Parameters.Add(new MySqlParameter("intMinMbh", 300));
                    sqlCommand.Parameters.Add(new MySqlParameter("dblDimA", 20000));
                    sqlCommand.Parameters.Add(new MySqlParameter("dblDimB", 20000));
                    sqlCommand.Parameters.Add(new MySqlParameter("dblDimC", 20000));
                    sqlCommand.Parameters.Add(new MySqlParameter("dblDimD", 20000));

                    MySqlCommand cm = new MySqlCommand("CALL sp_criteria()", MySqlConnection);
                }
            }

            MySqlDataAdapter sqlDataAdapter = new MySqlDataAdapter(sqlCommand);
            DataSet outputDataSet = new DataSet();
            sqlDataAdapter.Fill(outputDataSet, "compatibleset");

            outputDataTable = outputDataSet.Tables["compatibleset"];
        }

    }

    return outputDataTable;
}
}

最佳答案

您声明了一个局部变量 cm 但从未使用它:

MySqlCommand cm = new MySqlCommand("CALL sp_criteria()", MySqlConnection);

相反,在创建sqlCommand 时设置存储过程名称(CALL 是不必要的)。 (此外,您的问题中 MySqlConnection 周围的大括号看起来不正确,因此我已在此处修复了该问题。)

using (MySqlConnection MySqlConnection = new MySqlConnection(connectionString))
using (MySqlCommand sqlCommand = new MySqlCommand(procedureName, MySqlConnection))
{
    MySqlConnection.Open();

    sqlCommand.CommandType = CommandType.StoredProcedure;

    // ADD THIS
    sqlCommand.CommandText = "sp_criteria";

关于c# - 在 Visual Studio C# 中从 mySQL 执行存储过程时无输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48710646/

相关文章:

c# - 如何在 C#.net 中使用 awesomium 登录谷歌帐户?

php - 根据mysql中特定列数据过滤数据

mysql - 如何更改/更改 mysql 数据库用户

MySQL BIGINT UNSIGNED 值在与 (-1) 相乘时超出范围

php - 从 Mysql 查询创建表的正确方法是什么?

c# - 如何使用 JSON.NET 遍历嵌套字典?

c# - Excel 公式和元数据

c# - php中的友元函数是什么?

c# - 构建一个 c# 桌面应用程序,从头开始,请提示

mysql - 更改数据库中的标志以显示某人是 "online"但它不起作用