【发布时间】:2021-04-03 06:29:33
【问题描述】:
我是存储过程的新手。当我运行此程序时,我收到一条错误消息,提示将数据类型 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();
【问题讨论】:
-
将
1转换为byte(mySqlcmd.Parameters.Add("@p_PhoneNumberTypeID", SqlDbType.TinyInt).Value = (byte) 1;)。让我知道它是否有效,我会写下来作为答案 -
发布您的存储过程。定义。你可能有你的参数类型错误的方式....
-
@Flydog57 - 我这样做了,现在我得到了这个错误。
-
"PhoneNumber_Insert 需要未提供的参数 @PhoneNumberTypeId" mySqlcmd.Parameters.Add("@p_PhoneNumberTypeID", SqlDbType.TinyInt).Value= (byte)1;
-
mySqlcmd.Parameters.Add("@p_PersonID", SqlDbType.Int).Value = "754381";你为什么要把它作为字符串传递?
标签: c# mysql sql database stored-procedures