c# - C#调用mysql存储过程的方法

标签 c# mysql call

我想从 c# 调用 Mysql 存储过程。我在 mysql 查询浏览器中运行相同的程序。这是关于从给定的输入年、月、日和当前日期获取到期日。 This is the output

      DELIMITER $$

         DROP PROCEDURE IF EXISTS `passbook`.`maturity_date` $$
         CREATE DEFINER=`root`@`localhost` PROCEDURE `maturity_date`(IN `stdate` 
         DATE, IN `adyear` INT(4), IN `amonth` INT(2), IN `adays` INT(2), INOUT 
         `matdate` DATE)
         NO SQL
         Begin
         declare new_date , pstdate date;

         set new_date = stdate;

          if adyear > 0 then

          SELECT date_add(stdate, INTERVAL adyear year) into pstdate;

          set new_date = pstdate;
          end if;


           if amonth > 0 then

SELECT date_add(new_date, INTERVAL amonth MONTH) into pstdate;
set new_date = pstdate;
end if;

if adays > 0 then

SELECT date_add(new_date, INTERVAL adays DAY) into pstdate;
set new_date = pstdate;
end if;


Set matdate = new_date;
Select matdate;
end $$

DELIMITER ;

getting error Image

最佳答案

试试这个:

            var ConnectionString="Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword";            
            var sqlParameters = new List<SqlParameter>();
            var storedProcedureName = "SPName";

    //add parameters with value and type here
            sqlParameters.Add(new SqlParameter { SqlDbType = SqlDbType.Int, ParameterName = "@adyear", Value = adyear});
            sqlParameters.Add(new SqlParameter { SqlDbType = SqlDbType.Int, ParameterName = "@amonth", Value = amonth});
            sqlParameters.Add(new SqlParameter { SqlDbType = SqlDbType.Int, ParameterName = "@adys ", Value = adys });

    //execute store procedure here
            using (var connection = new SqlConnection(ConnectionString))
            using (var command = new SqlCommand(storedProcedureName, connection) { CommandTimeout = 160, CommandType = commandType })
            using (var dataAdaptor = new SqlDataAdapter(command))
            {
                command.Parameters.AddRange(sqlParameters);

                connection.Open();
                dataAdaptor.Fill(dS);
            }

您也可以使用 Mysql.Data 我相信这是最简单的方法。你不需要任何其他东西来使用 mysql 数据库。

PM> Install-Package MySql.Data

您可以将连接字符串存储在文件中。只需创建一个文件并将连接字符串放在上面即可。然后在静态类中阅读它。像这样:

CS = File.ReadAllText(YourDataBaseConfigFilePath);

然后将其用作您的连接字符串。

关于c# - C#调用mysql存储过程的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43425310/

相关文章:

php - 遍历具有重复记录的 PHP 数组并删除值 = 0 的一条记录

C# 如何对集合执行字符串替换方法?

c# - ContentResult 与 JsonResult 与 ajax

python - 使用python从windows主机访问虚拟机MySQL数据库

php - 检查 cakephp 中的用户是否喜欢选定的行

c# - 如何在 C# 中调用托管 DLL 文件?

python - 需要帮助返回在函数外部使用的变量 (Python)

android - 从 android 调用外部 URL 并获得响应

c# - 自定义属性未正确添加到 Reflection.Emit 程序集中

c# - Silverlight Prism : How to maintain views in a specific order inside a region