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

我已经为此工作了一段时间。我正在尝试将图像添加到SQL数据库。我知道这不是最好的方法,但是我的老板真的希望那样。我将在其中添加图像的表具有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中的手风琴中。

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;

}

}

    //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;

<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 />

我的问题是,当我上传图像时, 返回0,这意味着图像未插入表中。我试过放一个

字段而不是Image类型,但是它不起作用。我可以在网上找到的所有内容都告诉我使用该代码或该代码的变体(获取字节数组的其他方法,我只是最简单的方法)。

总体而言,为什么会UPDATE失败,以及如何使它起作用。

谢谢

回答:

本文展示了所有内容:

http://www.dotnetcurry.com/ShowArticle.aspx?ID=129

希望当它开始工作并且老板看到它有多慢时,您将被允许以正确的方式进行操作并将映像存储在磁盘上。

以上是 在ASP.NET中将图像添加到SQL数据库时出现问题 的全部内容, 来源链接: utcz.com/qa/412997.html

回到顶部