首页 > 解决方案 > 将数据类型 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();

标签: c#mysqlsqldatabasestored-procedures

解决方案


您在 MySQL Connector/NET 中遇到错误 101302 。有三种可能的解决方法:

  1. 更改您的代码以明确使用MySqlDbType.BytemySqlcmd.Parameters.Add("@p_PhoneNumberTypeID", MySqlDbType.Byte).Value = 1;
  2. 降级到 MySql.Data 8.0.21。
  3. 切换到MySqlConnector,它支持与 MySql.Data 相同的 API,但错误较少

推荐阅读