1) 在c#程序中 为 byte[] 变量赋值:eg 变量 a=new byte[0];
2) 在程序中链接sql server时
/*photo字段是varbinary(MAX)类型,如果用户未选择文件,应该插入空值,但不知如何写代码?
尝试了,用null不行,用DBNull.Value(会导致不是空值)也不行 */
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["db"].ConnectionString)) { String sql = "insert into emp(name,age,photo) values(@name,@age,@photo)"; SqlCommand cmd = new SqlCommand(sql, conn); cmd.Parameters.AddWithValue("@name", textBox1.Text); cmd.Parameters.AddWithValue("@age", Convert.ToInt32(textBox2.Text)); byte[] b; if (textBox3.Text != "")//用户选择了图像文件 { b = File.ReadAllBytes(textBox3.Text); cmd.Parameters.AddWithValue("@photo", b); } else { //如果用户未选择文件,应该插入空值,但不知如何处理?
} conn.Open(); try { cmd.ExecuteNonQuery(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
正确方法:
cmd.Parameters.AddWithValue("@photo", System.Data.SqlTypes.SqlBinary.Null);