如何将上传的图像作为c#中的参数发送到sql

如何将上传的图像作为c#中的参数发送到sql,c#,C#,这是我的密码。错误消息为 未提供参数@event_image 如何将图像名称作为参数发送?如果我保留断点,它甚至不会进入If(fileupload1.HasFile) 我必须存储在文件夹中的图像和路径必须存储到sql数据库 { conn.Open(); string postdate = txtpostdate.Text; string unpostdate = txtunpostdate.Text; string name = t

这是我的密码。错误消息为

未提供参数@event_image

如何将图像名称作为参数发送?如果我保留断点,它甚至不会进入
If(fileupload1.HasFile)

我必须存储在文件夹中的图像和路径必须存储到sql数据库

{
        conn.Open();
        string postdate = txtpostdate.Text;
        string unpostdate = txtunpostdate.Text;
        string name = txtname.Text;
        string description = txtdescription.Text;
        string country = dropcountry.SelectedItem.ToString();
        string multidate = txtstartdae.Text;
        string startend = dropstarttime.SelectedItem.ToString();
        string drop1m = dropti1m.SelectedItem.ToString();
        string dropme1h = droptimeend1h.SelectedItem.ToString();
        string drop2m = droptime2m.SelectedItem.ToString();
        string notes = txtnotes.Text;
        string prevlocation = droplocation.SelectedItem.ToString();
        string locationname = txtslocname.Text;
        string addres1 = txtsLocAddress1.Text;
        string addres2 = txtsLocAddress2.Text;
        string city = txtsLocCity.Text;
        string state = dropstate.SelectedItem.ToString();
        string zipcode = txtsLocZip.Text;
        string phonenumber = txtsLocPhone.Text;
        string faxnumber = txtsLocFax.Text;
        string notes2 = textnotes2.Text;
        SqlCommand cmd = new SqlCommand("InsertEvents", conn);
        cmd.CommandType = CommandType.StoredProcedure;
        //SqlCommand cmd = new SqlCommand("insert into pa_events(event_postdate,event_unpostdate,event_canvisitorsregisters,event_eventname,event_description,event_image,event_multydateevent,event_startdate,event_enddate,event_start,event_end,event_notes,location_name,location_addres1,location_addres2,location_cites,location_state,location_zipcode,location_phonenumber,location_faxnumber,location_notes,event_country) values(@event_postdate,@event_unpostdate,@event_canvisitorsregisters,@event_eventname,@event_description,@event_image,@event_multydateevent,@event_startdate,@event_enddate,@event_start,@event_end,@event_notes,@location_name,@location_addres1,@location_addres2,@location_cites,@location_state,@location_zipcode,@location_phonenumber,@location_faxnumber,@location_notes,@event_country)", conn);

        if (fileupload1.HasFile)
        {
            imagename = fileupload1.FileName;

            int length = fileupload1.PostedFile.ContentLength;
            fileupload1.SaveAs(Server.MapPath("~\\images\\" + imagename));

             s = "~\\images\\" + imagename + "";
        }              


            if (radioyes.Checked == false && !radiono.Checked == false)
            {
                lblmsg.Text = "Please Select canve Register Yes! or No!";
            }

            if (radioyes.Checked == true)
            {
                cmd.Parameters.AddWithValue("@event_canvisitorsregisters", SqlDbType.VarChar).Value = "Y";
            }
            else
            {
                cmd.Parameters.AddWithValue("@event_canvisitorsregisters", SqlDbType.VarChar).Value = "N";
            }


            if (radiomultyyes.Checked == true)
            {
                cmd.Parameters.AddWithValue("@event_multydateevent", SqlDbType.VarChar).Value = "Y";
            }
            else
            {
                cmd.Parameters.AddWithValue("@event_multydateevent", SqlDbType.VarChar).Value = "N";
            }

            **cmd.Parameters.AddWithValue("@event_image", s);**
            cmd.Parameters.AddWithValue("@event_postdate", postdate);
            cmd.Parameters.AddWithValue("@event_unpostdate", unpostdate);
            cmd.Parameters.AddWithValue("@event_eventname", name);
            cmd.Parameters.AddWithValue("@event_description", description);
            cmd.Parameters.AddWithValue("@event_country", country);
            cmd.Parameters.AddWithValue("@event_startdate", startend);
            cmd.Parameters.AddWithValue("@event_enddate", drop1m);
            cmd.Parameters.AddWithValue("@event_start", dropme1h);
            cmd.Parameters.AddWithValue("@event_end", drop2m);
            cmd.Parameters.AddWithValue("@event_notes", notes);
            cmd.Parameters.AddWithValue("@location_name", locationname);
            cmd.Parameters.AddWithValue("@location_addres1", addres1);
            cmd.Parameters.AddWithValue("@location_addres2", addres2);
            cmd.Parameters.AddWithValue("@location_cites", city);
            cmd.Parameters.AddWithValue("@location_state", state);
            cmd.Parameters.AddWithValue("@location_zipcode", zipcode);
            cmd.Parameters.AddWithValue("@location_phonenumber", phonenumber);
            cmd.Parameters.AddWithValue("@location_faxnumber", faxnumber);
            cmd.Parameters.AddWithValue("@location_notes", notes2);
            //if (fileupload1.PostedFile != null && fileupload1.PostedFile.FileName != "")
            //
            int i = cmd.ExecuteNonQuery();
            if (i != 0)
            {
                lblmsg.Text = "record is inserted";
            }
            else
            {
                lblmsg.Text = "record is not inserted";
            }
            conn.Close();    
    }

错误不在于您的SQL插入,而在于您的文件上载设置如何。您得到这个错误是因为,正如您所说的,您甚至没有输入创建SQL参数的if语句


你能发布与图片上传相关的代码吗?这是您的根本问题。

老实说,您的代码不清楚,但希望它能与您一起工作: 使用文件上载添加参数

if (fileupload1.HasFile)
    {
        imagename = fileupload1.FileName;

        int length = fileupload1.PostedFile.ContentLength;
        fileupload1.SaveAs(Server.MapPath("~\\images\\" + imagename));

         s = "~\\images\\" + imagename + "";
        cmd.Parameters.AddWithValue("@event_image", s);
   }  

您如何存储图像?数据库中的数据类型是什么?声明和填充fileupload1的代码在哪里?我只存储路径varcharif(fileupload1.HasFile){imagename=fileupload1.FileName;int length=fileupload1.PostedFile.ContentLength;fileupload1.SaveAs(Server.MapPath(“~\\images\\”+imagename));s=“~\\images\\”+imagename+”;}cmd.Parameters.AddWithValue(“@event_image”,s) 图像:

“fileimage”与您在上面使用的“fileupload1”的名称不同,但我猜它可能没有那么简单。您试图在哪里访问此图像?您可能正在对正在清除它的回发执行某些操作。如果id是fileimage,那么它应该是
fileimage.HasFile
而不是
fileupload1.HasFile
…因为显示的代码太少,所以它很复杂,
fileupload1.HasFile
我认为会给您一个编译错误