c# - 将数据类型 int 转换为 tinyint 时出错
问题描述
我是存储过程的新手。当我运行此程序时,我收到一条错误消息,提示将数据类型 int 转换为 tinyint 时出错。在我的 C# 中有以下代码:
mySqlcmd.CommandText = "EXECUTE PhoneNumber_Insert @p_PhoneNumberTypeID, @p_PersonID";
mySqlcmd.Parameters.Add("@p_PhoneNumberTypeID", SqlDbType.TinyInt).Value = 1;
mySqlcmd.Parameters.Add("@p_PersonID", SqlDbType.Int).Value = "754381";
mysqlConnection.Open();
mySqlcmd.ExecuteNonQuery();
mysqlConnection.Close();
解决方案
您在 MySQL Connector/NET 中遇到错误 101302 。有三种可能的解决方法:
- 更改您的代码以明确使用
MySqlDbType.Byte
:mySqlcmd.Parameters.Add("@p_PhoneNumberTypeID", MySqlDbType.Byte).Value = 1;
- 降级到 MySql.Data 8.0.21。
- 切换到MySqlConnector,它支持与 MySql.Data 相同的 API,但错误较少。
推荐阅读
- java - SpringBoot JmsListener:忽略 TypeId
- typescript - 是否可以使用 TypeScript 来确定字符串文字联合中的所有类型是否至少使用一次?
- c# - 在 C# 中从多个数组对象创建单个对象数组
- c# - 尝试呈现其视图不在窗口层次结构问题中的 QLPreviewController
- javascript - Nestjs cronjob 无法读取注入服务
- c++ - 如何将函数 agruments(pointer, reference) 传递给“新线程”并期望返回值?
- mysql - 使用 Sequelize 排除空关联数组
- git - 当一次尝试 20 次时,75% 的情况下 git pull 会失败
- php - 基于另一个键的条件的数组递归替换?
- java - Android espresso 点击自定义时间