gpt4 book ai didi

.net - MySQL .NET 连接器和空值

转载 作者:行者123 更新时间:2023-11-30 23:31:23 25 4
gpt4 key购买 nike

我正在尝试从 .NET 调用一个 MySQL 存储过程,该过程在其中一个参数中接受 NULL 值。我从下面构建我的参数列表,当我通过查看 Visual Studio 中的值显示 {} 来设置 DBNull.Value 时,我不断收到错误消息。我不确定为什么这是错误的,但没有给出任何详细的原因信息。

 protected IEnumerable<MySqlParameter> BuildParameterList(IEnumerable<KeyValuePair<string, object>> parameters)
{
return parameters.Select(parameter => new MySqlParameter(parameter.Key, parameter.Value ?? DBNull.Value)
{
IsNullable = parameter.Value == null
});
}

最佳答案

通过这样做修复了它。看起来 MySQL 不喜欢 AnsiString,它是 null 的默认数据类型。

protected IEnumerable<MySqlParameter> BuildParameterList(IEnumerable<KeyValuePair<string, object>> parameters)
{
foreach (var parameter in parameters)
{
var mysqlParameter = new MySqlParameter(parameter.Key, parameter.Value ?? DBNull.Value)
{
IsNullable = parameter.Value == null
};

if(parameter.Value == null && mysqlParameter.DbType == DbType.AnsiString)
{
mysqlParameter.DbType = DbType.String;
}


yield return mysqlParameter;
}
}

关于.net - MySQL .NET 连接器和空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10436068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com