You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#调用MySQL存储过程更新多列遇格式异常求助

会员记录更新功能异常排查

捕获的错误信息

'SAFE PMA Members.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\6.0.22\System.Diagnostics.StackTrace.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'SAFE PMA Members.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\6.0.22\System.Reflection.Metadata.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'SAFE PMA Members.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\6.0.22\System.Collections.Immutable.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
Exception thrown: 'System.FormatException' in System.Private.CoreLib.dll

存储过程(MySQL Workbench中输入参数可正常执行)

DELIMITER //
CREATE PROCEDURE updates_member(IN p_id INT, IN p_firstName VARCHAR(30), IN p_lastName VARCHAR(30), IN p_phoneNumber VARCHAR(15),
    IN p_email VARCHAR(100), IN p_streetAddress VARCHAR(100), IN p_city VARCHAR(30), IN p_state VARCHAR(20), IN p_zipCode INT(1), IN p_balance int(1), IN p_lastBalUpdate date)
BEGIN
UPDATE members
SET
firstName = p_firstName, lastName = p_lastName, phoneNumber = p_phoneNumber, email = p_email, streetAddress = p_streetAddress, city = p_city, state = p_state, zipCode = p_zipCode, balance = p_balance, lastBalUpdate = p_lastBalUpdate WHERE id = p_id;
END //
DELIMITER ;;

C#调用代码

public string MemberUpdate(Member input)
{
    using var connection = new MySqlConnection
        (Helper.connVal("members"));
    string calling = "updates_member";
    string Msg = "";

    MySqlCommand cmd = new MySqlCommand(calling, connection);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.Add("@p_id", MySqlDbType.Int32).Value = input.id;
    cmd.Parameters.Add("@p_firstName", MySqlDbType.VarString).Value = input.FirstName;
    cmd.Parameters.Add("@p_lastName", MySqlDbType.VarString).Value = input.LastName;
    cmd.Parameters.Add("@p_phoneNumber", MySqlDbType.VarString).Value = input.PhoneNumber;
    cmd.Parameters.Add("@p_email", MySqlDbType.VarString).Value = input.Email;
    cmd.Parameters.Add("@p_streetAddress", MySqlDbType.VarString).Value = input.StreetAddress;
    cmd.Parameters.Add("@p_city", MySqlDbType.VarString).Value = input.City;
    cmd.Parameters.Add("@p_state", MySqlDbType.VarString).Value = input.State;
    cmd.Parameters.Add("@p_zipCode", MySqlDbType.Int32).Value = input.ZipCode;
    cmd.Parameters.Add("@p_balance", MySqlDbType.Int32).Value = input.CurrentBalance;
    cmd.Parameters.Add("@p_LastBalUpdate", MySqlDbType.Date).Value = input.LastBalUpdate;

    try
    {
        connection.Open();
        cmd.ExecuteNonQuery();
        connection.Close();
        Msg = "Successfully updated.";
    }
    catch 
    {
        Msg = "Error while updating";
    }

    return Msg;
}

问题详情

  • 基于WinForms开发作品集项目的会员记录更新功能
  • 远程MySQL服务器已将运行电脑IP加入白名单
  • 存储过程在MySQL Workbench中可正常执行,且已通过存储过程实现数据查询功能,但更新功能异常
  • 程序持续返回Error while updating提示,无法定位具体原因
  • 作为C#新手,需要解决该问题并了解如何查看详细错误日志

内容的提问来源于stack exchange,提问作者Jacob Cannon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 23:25:32