我在sql server 2014中保存图像的代码,但是代码给出了图像dats的空数据错误 [英] my code for saving image in sql server 2014 but the code giving error as null data for the image dats

查看:74
本文介绍了我在sql server 2014中保存图像的代码,但是代码给出了图像dats的空数据错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=E:\Software\Hrms\hrms_hrmodule\hrms_hrmodule\employee.mdf;Integrated Security=True;Connect Timeout=30");
            try
            {
                con.Open();
                string s = "insert into Registration values(@empid,@name,@age,@dob,@add,@contact,@sex,@skill,@prof,@photo,@doc1,@doc2)";
                cmd = new SqlCommand(s,con);
                cmd.Parameters.Add(new SqlParameter("@empid",SqlDbType.Int));
                cmd.Parameters.Add(new SqlParameter("@name",SqlDbType.Text));
                cmd.Parameters.Add(new SqlParameter("@age", SqlDbType.Int));
                cmd.Parameters.Add(new SqlParameter("@add",SqlDbType.Text));
                cmd.Parameters.Add(new SqlParameter("@contact",SqlDbType.Text));
                cmd.Parameters.Add(new SqlParameter("@sex",SqlDbType.Text));
                cmd.Parameters.Add(new SqlParameter("@skill",SqlDbType.Text));
                cmd.Parameters.Add(new SqlParameter("@prof",SqlDbType.Text));
                cmd.Parameters.Add(new SqlParameter("@photo",SqlDbType.Image));
                cmd.Parameters.Add(new SqlParameter("@doc1",SqlDbType.Image));
                cmd.Parameters.Add(new SqlParameter("@doc2", SqlDbType.Image));
                cmd.Parameters.Add(new SqlParameter("@dob", SqlDbType.Date));
                cmd.Parameters["@empid"].Value = text_id.Text;
                cmd.Parameters["@name"].Value = text_name.Text;
                cmd.Parameters["@age"].Value = text_age.Text;
                cmd.Parameters["@add"].Value = richTextBox.ToString();
                cmd.Parameters["@contact"].Value = text_contact.Text;
                if(btn_male.IsEnabled)
                {
                    sex = "male";
                }
                else if(btn_female.IsEnabled)
                {
                     sex = "female";
                }
              
                cmd.Parameters["@sex"].Value = sex;
                cmd.Parameters["@dob"].Value = datepicker.Text;
                cmd.Parameters["@prof"].Value = comboBox1.Text;
                string skill = "developer";
                cmd.Parameters["@skill"].Value = skill;
                cmd.Parameters["@photo"].Value = pic1;
                cmd.Parameters["@doc1"].Value = doc1;
                cmd.Parameters["@doc2"].Value = doc2;
                cmd.ExecuteNonQuery();
                MessageBox.Show("record saved");

推荐答案

首先查看pic1 - 如果它为null,那么除非DB字段允许空值,否则你将得到该错误(来自您的错误消息,我假设它没有)。



但是,如果它是你传递的Image类实例,你也不想这样做 - 你需要通过而是字节数据。请参阅此处:为什么我会得到一个参数无效。我从数据库中读取图像时出现异常? [ ^ ],告诉你如何操作。
Start by looking at "pic1" - if it is null, then you will get that error unless the DB field allows null values (from your error message, I assume it doesn't).

However, if it is an Image class instance you are passing, you don't want to do that either - you need to pass the byte data instead. See here: Why do I get a "Parameter is not valid." exception when I read an image from my database?[^] which shows you how to do it.


这篇关于我在sql server 2014中保存图像的代码,但是代码给出了图像dats的空数据错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆