Kar*_*ski 11 c# parameters dbnull sql-server-2008 winforms
如何在参数varbinary数据类型中添加空值?
当我执行以下代码时:
using (SqlConnection myDatabaseConnection1 = new SqlConnection(myConnectionString.ConnectionString))
{
using (SqlCommand mySqlCommand = new SqlCommand("INSERT INTO Employee(EmpName, Image) Values(@EmpName, @Image)", myDatabaseConnection1))
{
mySqlCommand.Parameters.AddWithValue("@EmpName", textBoxEmpName.Text);
mySqlCommand.Parameters.AddWithValue("@Image", DBNull.Value);
myDatabaseConnection1.Open();
mySqlCommand.ExecuteNonQuery();
}
}
Run Code Online (Sandbox Code Playgroud)
我得到以下内容System.Data.SqlClient.SqlException:
不允许从数据类型nvarchar到varbinary(max)的隐式转换.使用CONVERT函数运行此查询.
我不知道为什么"DBNull.Value"对我不起作用的原因.我想出另一个解决方案可以解决这个问题.
cmd.Parameters["@Image"].Value = System.Data.SqlTypes.SqlBinary.Null;
Run Code Online (Sandbox Code Playgroud)
你可以尝试这样的事情: -
cmd.Parameters.Add( "@Image", SqlDbType.VarBinary, -1 );
cmd.Parameters["@Image"].Value = DBNull.Value;
Run Code Online (Sandbox Code Playgroud)
尝试这个 :
mySqlCommand.Parameters.AddWithValue("@Image", new byte[]{});
Run Code Online (Sandbox Code Playgroud)
sqlCommand.Parameters.AddWithValue("@image", SqlBinary.Null);
Run Code Online (Sandbox Code Playgroud)