简体   繁体   English

在C#中将图像从数据库检索到数据网格

[英]Retrieving image from database to a data grid in c#

I saved the image into the database in binary format. 我以二进制格式将图像保存到数据库中。 I get an error when i am trying to retrieve it. 尝试检索时出现错误。 The error says "The connection name 'ConnectionString' was not found in the applications configuration or the connection string is empty." 该错误显示“在应用程序配置中找不到连接名称'ConnectionString'或连接字符串为空。” This is my code, what am i doing wrong?? 这是我的代码,我在做什么错?

//Code for generic handler

<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;
using System.Configuration;
using System.Data.SqlClient;
public class Handler : IHttpHandler {

    public void ProcessRequest (HttpContext context) {
    SqlConnection con = new SqlConnection();
    con.ConnectionString = ConfigurationManager.ConnectionStrings["Data Source=ACER-   
                             PC\\SQLEXPRESS;Initial Catalog=imageDemo;Integrated 
                             Security=True"].ConnectionString;

    SqlCommand cmd = new SqlCommand();
    cmd.CommandText = "Select ImageName,Image from image" + " where ID =@ID";
    cmd.CommandType = System.Data.CommandType.Text;
    cmd.Connection = con;
    SqlParameter ImageID = new SqlParameter("@ID", System.Data.SqlDbType.Int);
    ImageID.Value = context.Request.QueryString["ID"];
    cmd.Parameters.Add(ImageID);
    con.Open();
    SqlDataReader dReader = cmd.ExecuteReader();
    dReader.Read();
    context.Response.BinaryWrite((byte[])dReader["Image"]);
    dReader.Close();
    con.Close();
}

    //Code for datagrid

    <asp:GridView ID="GridView1" runat="server" 
          AutoGenerateColumns="False" DataKeyNames="ID"
          DataSourceID="SqlDataSource1">
    <Columns>
    <asp:BoundField DataField="ID" HeaderText="ID" 
            InsertVisible="False" ReadOnly="True"
                           SortExpression="ID" />
    <asp:BoundField DataField="ImageName" HeaderText="ImageName" 
                           SortExpression="ImageName" />
    <asp:TemplateField HeaderText="Image">
    <ItemTemplate>
    <asp:Image ID="Image1" runat="server" 
       ImageUrl='<%# "Handler.ashx?ID=" + Eval("ID")%>'/>
    </ItemTemplate>
    </asp:TemplateField>
    </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
    SelectCommand="SELECT [ID], [ImageName], [Image] 
          FROM [image]"></asp:SqlDataSource>

"Data Source=ACER-PC\\SQLEXPRESS;Initial Catalog=imageDemo;Integrated Security=True" is your Connection String. “数据源= ACER-PC \\ SQLEXPRESS;初始目录= imageDemo;集成安全性= True”是您的连接字符串。

Check your web.config and see if you have something like this: 检查您的web.config,看看是否有以下内容:

<connectionStrings>
    <add name="myConnection" connectionString="Data Source=ACER-PC\\SQLEXPRESS;Initial Catalog=imageDemo;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>

After that, change your line to 之后,将您的行更改为

con.ConnectionString = ConfigurationManager.ConnectionStrings["myConnection"].ConnectionString;

Wrong: 错误:

con.ConnectionString = ConfigurationManager.ConnectionStrings[ "Data Source=ACER- con.ConnectionString = ConfigurationManager.ConnectionStrings [ “数据源= ACER-
PC\\SQLEXPRESS;Initial Catalog=imageDemo;Integrated Security=True" ].ConnectionString; PC \\ SQLEXPRESS;初始目录= imageDemo;集成安全性= True“ ] .ConnectionString;

It should be.. 它应该是..

con.ConnectionString = "Data Source=ACER-PC\\SQLEXPRESS;Initial Catalog=imageDemo;Integrated Security=True"; con.ConnectionString =“数据源= ACER-PC \\ SQLEXPRESS;初始目录= imageDemo;集成安全性=真”;

Or 要么

con.ConnectionString = ConfigurationManager.ConnectionStrings["YourConnection"].ConnectionString; con.ConnectionString = ConfigurationManager.ConnectionStrings [“ YourConnection”]。ConnectionString;

So, you need to put following in your app.config or web.config 因此,您需要在app.config或web.config中添加以下内容

<connectionStrings>
<add name="YourConnection" connectionString="Data Source=ACER-PC\\SQLEXPRESS;Initial      Catalog=imageDemo;Integrated Security=True" providerName="System.Data.SqlClient"/>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM