我正在使用MySQL
c# 4
我的过程参数是NVARCHAR(100)
。
所以我正在做的是
MySqlParameter DBParam1 = new MySqlParameter("var_Name", (object)(string.IsNullOrEmpty(Name)? DBNull.Value : Name));
MySqlCommand _DBCommand = new MySqlCommand();
_DBCommand.Connection = _DBConnection;
_DBCommand.CommandText = "udsp_ProcedureName";
_DBCommand.CommandType = System.Data.CommandType.StoredProcedure;
_DBCommand.Parameters.Clear();
_DBCommand.Parameters.Add(DBParam1);
所以这是抛出“ErrorMessage”:“遇到未处理的类型”
我该如何解决这个问题?
我看了什么
How do I Parameterize a null string with DBNull.Value clearly and quickly
Is there a more elegant form for assigning NULL to InsertCommand's NVarChar?
答案 0 :(得分:0)
您正在使用构造函数来设置值,而期望值为MySqlDBType
。
试试这个:
MySqlParameter DBParam1 = new MySqlParameter("@var_Name", MySqlType.VarChar)
DBParam1.Value = (object)(string.IsNullOrEmpty(Name) ? DBNull.Value : Name;
答案 1 :(得分:0)
将DBNull.Value
传递给NVARCHAR
类型会引发异常
" ErrorMessage":"遇到未处理的类型"
所以我把它作为空字符串传递。
MySqlParameter DBParam1 = new MySqlParameter("var_Name", (object)(string.IsNullOrEmpty(Name)? string.Empty : Name));