在ASP.NET中将图像添加到SQL数据库时出现问题

| 我已经为此工作了一段时间。我正在尝试将图像添加到SQL数据库。我知道这不是最好的方法,但我的老板确实希望那样。我将在其中添加图像的表具有Image类型的Image列。 这是我用来添加它的存储过程:
ALTER PROCEDURE pr_INSRT_Img (@Img image, @name varchar(50))
AS
BEGIN
    UPDATE usr
    SET Img= @Img
    WHERE disp_nm = @name
END
我的应用程序是在ASP.NET 4.0中制作的。它的工作原理是用户选择AJAX AsyncFileUpload和Image,并在该控件的UploadComplete函数上调用StoredProcedure来执行
INSERT
。 ASynchFileUPload位于gridview的UpdatePanel中的手风琴中。 UploadComplete:
protected void OnUpdateComplete(object sender, EventArgs e)
        {
            Image ImgUser = new Image();
            AsyncFileUpload asyncSender = new AsyncFileUpload();
            UpdatePanel pnlinfo = new UpdatePanel();
            AsyncFileUpload asyncGv = new AsyncFileUpload();
            Accordion accordion = new Accordion();
            Label lblName = new Label();

            //finding the row of the sender
            asyncSender = (AsyncFileUpload)sender;

            foreach (GridViewRow Row in gvData.Rows)
            {
                accordion = (Accordion)Row.Cells[0].FindControl(\"Accordion\");
                asyncGv = (AsyncFileUpload)accordion.FindControl(\"AsyncFileUpload\");
                if (asyncSender.ClientID == asyncGv.ClientID)
                {
                    ImgUser = (Image)accordion.FindControl(\"imgUser\");
                    ImgUser.ImageUrl = asyncGv.FileName;
                    lblName = (Label)Row.Cells[0].FindControl(\"lblPnlName\");
                    bool IsWorking = InsertImage(asyncGv.FileBytes, lblName.Text);
                    pnlinfo = (UpdatePanel)Row.Cells[0].FindControl(\"pnlInfo\");
                    pnlinfo.Update();
                    break;
                }
            }
InsertImage:
    //pr_INSRT_Img
    SqlCommand cmd = new SqlCommand(ConfigManager.InsertImage);
    cmd.CommandType = CommandType.StoredProcedure;

    //set the parameters
    cmd.Parameters.Add(\"@Img\", SqlDbType.Image).Value = ImgData;
    cmd.Parameters.Add(\"@name\", SqlDbType.VarChar).Value = Name;

    int ifWorks = DBUtils.ExecuteCmdScalar(cmd, ConfigManager.PhonebookSQLConnectionString);

    if (ifWorks != 0)
        return true;
    else
        return false;
ASychFileUpload在其中的代码的ASPX部分:
<div runat=\"server\" class=\"divRow\" style=\"text-align:center; width:300px; float:left;\">
                                        <asp:Accordion ID=\"Accordion\" runat=\"server\" FadeTransitions=\"true\" FramesPerSecond=\"40\" TransitionDuration=\"250\" 
                                            AutoSize=\"None\" SelectedIndex=\"-1\" RequireOpenedPane=\"false\" SuppressHeaderPostbacks=\"true\" Height=\"50px\" Width=\"360px\">
                                            <Panes>
                                                <asp:AccordionPane ID=\"AccordionPane\" runat=\"server\">
                                                    <Header>
                                                        <asp:Image ID=\"imgUser\" runat=\"server\" ImageAlign=\"Middle\" ImageUrl=\"~/silhouette.jpg\"
                                                            Width=\"100px\" Height=\"100px\" EnableViewState=\"true\"/>
                                                    </Header>
                                                    <Content>
                                                        <asp:AsyncFileUpload ID=\"AsyncFileUpload\" runat=\"server\" OnUploadedComplete=\"OnUpdateComplete\" />
                                                    </Content>
                                                </asp:AccordionPane>
                                            </Panes>
                                        </asp:Accordion>
                                        <asp:Button ID=\"btnUpdate\" runat=\"server\" OnClick=\"btnUpdate_Click\" Visible=\"false\"  />
                                    </div><br /><br />
我的问题是,当我上传图像时,ExecuteScalar()返回0,这表示图像未插入表中。我尝试放置varbinary(max)字段而不是Image类型,但是它不起作用。我在网上找到的所有内容都告诉我使用该代码或该代码的变体(获取字节数组的其他方法,我只是最简单的方法)。 总体而言,“ 5”为什么会失败,我如何使它工作。 谢谢     
已邀请:
本文展示了所有内容: http://www.dotnetcurry.com/ShowArticle.aspx?ID=129 希望当您开始工作时,老板会看到它有多慢,您将被允许以正确的方式进行操作并将映像存储在磁盘上。     

要回复问题请先登录注册