DataGrid中,读取数据库中的图片并绑定数据列或磁盘目录中的图片,用输出流方式...

显示效果如下

SID图片显示
180
181
182
183
184
1


图片显示页面Html:DataGridShowPicture.aspx
ExpandedBlockStart.gifContractedBlock.gif<%dot.gif@ Page language="c#" Codebehind="DataGridShowPicture.aspx.cs" AutoEventWireup="false" Inherits="_0921test.DataGridShowPicture" %>
None.gif
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
None.gif
<HTML>
None.gif    
<HEAD>
None.gif        
<title>DataGridShowPicture</title>
None.gif        
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
None.gif        
<meta content="C#" name="CODE_LANGUAGE">
None.gif        
<meta content="JavaScript" name="vs_defaultClientScript">
None.gif        
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
None.gif    
</HEAD>
None.gif    
<body MS_POSITIONING="GridLayout">
None.gif        
<form id="DataGridShowImage" method="post" runat="server">
None.gif            
<table style="Z-INDEX: 101; LEFT: 400px; POSITION: absolute; TOP: 72px" align="center">
None.gif                
<tr>
None.gif                    
<td align="center">
None.gif                        
<asp:datagrid id="dgShowPicture" HeaderStyle-HorizontalAlign="Center" Runat="server" BorderColor="#3366CC"
None.gif                            ItemStyle-BackColor
="Beige" HeaderStyle-ForeColor="#ffffff" HeaderStyle-Font-Bold="True" HeaderStyle-BackColor="#ff0000"
None.gif                            Width
="160px" AutoGenerateColumns="False" BorderStyle="None" BorderWidth="1px" BackColor="White"
None.gif                            CellPadding
="4" PageSize="5" AllowPaging="True" AllowCustomPaging="True">
None.gif                            
<FooterStyle ForeColor="#003399" BackColor="#99CCCC"></FooterStyle>
None.gif                            
<SelectedItemStyle Font-Bold="True" ForeColor="#CCFF99" BackColor="#009999"></SelectedItemStyle>
None.gif                            
<ItemStyle ForeColor="#003399" BackColor="White"></ItemStyle>
None.gif                            
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" ForeColor="#CCCCFF" BackColor="#003399"></HeaderStyle>
None.gif                            
<Columns>
None.gif                                
<asp:TemplateColumn HeaderText="SID">
None.gif                                    
<ItemTemplate>
None.gif                                        
<asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PID") %>' ID="Label1"/>
None.gif                                    
</ItemTemplate>
None.gif                                
</asp:TemplateColumn>
None.gif                                
<asp:TemplateColumn HeaderText="图片显示">
None.gif                                    
<ItemTemplate>
None.gif                                        
<asp:Image Runat=server ID="Image1" Height =50 Width=50 ImageUrl='<%# FormatURL(DataBinder.Eval(Container.DataItem, "Mulname")) %>'/>
None.gif                                    
</ItemTemplate>
None.gif                                
</asp:TemplateColumn>
None.gif                            
</Columns>
None.gif                            
<PagerStyle VerticalAlign="Middle" Font-Bold="True" HorizontalAlign="Center" ForeColor="#003399"
None.gif                                BackColor
="#99CCCC" Mode="NumericPages"></PagerStyle>
None.gif                        
</asp:datagrid>
None.gif                    
</td>
None.gif                
</tr>
None.gif            
</table>
None.gif        
</form>
None.gif    
</body>
None.gif
</HTML>
None.gif



图片显示页面CS:DataGridShowPicture.cs
None.gifusing System;
None.gif
using System.Collections;
None.gif
using System.ComponentModel;
None.gif
using System.Data;
None.gif
using System.Drawing;
None.gif
using System.Web;
None.gif
using System.Web.SessionState;
None.gif
using System.Web.UI;
None.gif
using System.Web.UI.WebControls;
None.gif
using System.Web.UI.HtmlControls;
None.gif
using System.Data.SqlClient;
None.gif
None.gif
namespace _0921test
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
ExpandedSubBlockStart.gifContractedSubBlock.gif    
/**//// <summary>
InBlock.gif    
/// DataGridShowPicture 的摘要说明。
ExpandedSubBlockEnd.gif    
/// </summary>

InBlock.gif    public class DataGridShowPicture : System.Web.UI.Page
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
protected System.Web.UI.WebControls.DataGrid dgShowPicture;
InBlock.gif        
InBlock.gif
InBlock.gif        
private void Page_Load(object sender, System.EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
// 在此处放置用户代码以初始化页面
InBlock.gif
            if(!this.IsPostBack)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                BindGrid();
ExpandedSubBlockEnd.gif            }

ExpandedSubBlockEnd.gif        }

InBlock.gif
ContractedSubBlock.gifExpandedSubBlockStart.gif        
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
InBlock.gif        
override protected void OnInit(EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
//
InBlock.gif            
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
InBlock.gif            
//
InBlock.gif
            InitializeComponent();
InBlock.gif            
base.OnInit(e);
ExpandedSubBlockEnd.gif        }

InBlock.gif        
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
InBlock.gif        
/// 此方法的内容。
ExpandedSubBlockEnd.gif        
/// </summary>

InBlock.gif        private void InitializeComponent()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{    
InBlock.gif            
this.Load += new System.EventHandler(this.Page_Load);
InBlock.gif
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif        
#endregion

InBlock.gif
InBlock.gif
InBlock.gif        
private void BindGrid()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif
InBlock.gif            
string connectionString = "workstation id=WANGSZ;packet size=4096;integrated security=SSPI;data source=WANGSZ;persist security info=False;initial catalog=nature";
InBlock.gif            
InBlock.gif            
string sqlstr = "SELECT PID,Mulname FROM Picture where PID like '%18%'";            
InBlock.gif            
try
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
using (SqlConnection connection = new SqlConnection(connectionString))
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    DataSet ds 
= new DataSet();
InBlock.gif                    
try
ExpandedSubBlockStart.gifContractedSubBlock.gif                    
dot.gif{
InBlock.gif                        connection.Open();                    
InBlock.gif                        SqlDataAdapter Dta
= new SqlDataAdapter(sqlstr,connection);
InBlock.gif                        Dta.Fill(ds,
"ds");
InBlock.gif                        Dta.Dispose();
InBlock.gif                        dgShowPicture.DataSource 
= ds;
InBlock.gif                        
this.dgShowPicture.VirtualItemCount=5;
InBlock.gif                        dgShowPicture.DataBind();
ExpandedSubBlockEnd.gif                    }

InBlock.gif                    
catch(System.Data.SqlClient.SqlException ex)
ExpandedSubBlockStart.gifContractedSubBlock.gif                    
dot.gif{                
InBlock.gif                        
throw new Exception(ex.Message);
ExpandedSubBlockEnd.gif                    }
            
ExpandedSubBlockEnd.gif                }

ExpandedSubBlockEnd.gif            }

InBlock.gif            
catch(SqlException SQLexc)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                Response.Write(
"提取数据时出现错误:" + SQLexc.ToString()); 
ExpandedSubBlockEnd.gif            }
 
ExpandedSubBlockEnd.gif        }

InBlock.gif
InBlock.gif        
protected string FormatURL(object strArgument) 
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif
InBlock.gif            
return "DataGridReadImage.aspx?PID=" + strArgument.ToString(); 
ExpandedSubBlockEnd.gif        }

InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockEnd.gif    }

InBlock.gif        
ExpandedBlockEnd.gif}

None.gif


图片读取页面HTML: DataGridReadImage.aspx
ExpandedBlockStart.gifContractedBlock.gif<%dot.gif@ Page language="c#" Codebehind="DataGridReadImage.aspx.cs" AutoEventWireup="false" Inherits="_0921test.DataGridReadImage" %>
None.gif
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
None.gif
<HTML>
None.gif    
<HEAD>
None.gif        
<title>DataGridReadImage</title>
None.gif        
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
None.gif        
<meta name="CODE_LANGUAGE" Content="C#">
None.gif        
<meta name="vs_defaultClientScript" content="JavaScript">
None.gif        
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
None.gif    
</HEAD>
None.gif    
<body MS_POSITIONING="GridLayout">
None.gif        
<form id="Form1" method="post" runat="server">
None.gif            
<FONT face="宋体"></FONT>
None.gif        
</form>
None.gif    
</body>
None.gif
</HTML>
None.gif


图片读取页面CS: DataGridReadImage.aspx

None.gif using  System;
None.gif
using  System.Collections;
None.gif
using  System.ComponentModel;
None.gif
using  System.Data;
None.gif
using  System.Drawing;
None.gif
using  System.Web;
None.gif
using  System.Web.SessionState;
None.gif
using  System.Web.UI;
None.gif
using  System.Web.UI.WebControls;
None.gif
using  System.Web.UI.HtmlControls;
None.gif
using  System.Data.SqlClient;
None.gif
using  System.IO;
None.gif
None.gif
namespace  _0921test
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
ExpandedSubBlockStart.gifContractedSubBlock.gif    
/**//// <summary>
InBlock.gif    
/// DataGridReadImage 的摘要说明。
ExpandedSubBlockEnd.gif    
/// </summary>

InBlock.gif    public class DataGridReadImage : System.Web.UI.Page
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
private void Page_Load(object sender, System.EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
// 在此处放置用户代码以初始化页面
InBlock.gif
             string strImageID = Request.QueryString["PID"];
InBlock.gif            SqlConnection myConnection 
= new SqlConnection("workstation id=WANGSZ;packet size=4096;integrated security=SSPI;data source=WANGSZ;persist security info=False;initial catalog=nature");
InBlock.gif            
//SqlCommand myCommand = new SqlCommand("Select PersonImageType, PersonImage from Person Where PersonID=" + strImageID, myConnection);
InBlock.gif
            try
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif
//                myConnection.Open();
InBlock.gif
//                SqlDataReader myDataReader;
InBlock.gif
//                myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
InBlock.gif
//                if(myDataReader.Read())
InBlock.gif
//                { 
InBlock.gif
//                    Response.Clear();
InBlock.gif
//                    Response.ContentType = myDataReader["PersonImageType"].ToString();
InBlock.gif
//                    Response.BinaryWrite((byte[])myDataReader["PersonImage"]); 
InBlock.gif
//                } 
InBlock.gif
//                myConnection.Close(); 
InBlock.gif

InBlock.gif                FileInfo  file 
= new FileInfo(strImageID);
InBlock.gif            
InBlock.gif                
if(file.Exists)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    
using (FileStream fs = file.OpenRead()) 
ExpandedSubBlockStart.gifContractedSubBlock.gif                    
dot.gif{
InBlock.gif                        
byte[] buffer = new byte[12048];
InBlock.gif                        
int read;
InBlock.gif
InBlock.gif                        
while ((read = fs.Read(buffer, 0, buffer.Length)) != 0)
ExpandedSubBlockStart.gifContractedSubBlock.gif                        
dot.gif{
InBlock.gif                            Response.BinaryWrite(buffer);
ExpandedSubBlockEnd.gif                        }

ExpandedSubBlockEnd.gif                    }

ExpandedSubBlockEnd.gif                }

ExpandedSubBlockEnd.gif            }
 
InBlock.gif            
catch(SqlException SQLexc)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{ }
InBlock.gif            Response.End(); 
ExpandedSubBlockEnd.gif        }

InBlock.gif
ContractedSubBlock.gifExpandedSubBlockStart.gif        
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
InBlock.gif        
override protected void OnInit(EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
//
InBlock.gif            
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
InBlock.gif            
//
InBlock.gif
            InitializeComponent();
InBlock.gif            
base.OnInit(e);
ExpandedSubBlockEnd.gif        }

InBlock.gif        
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
InBlock.gif        
/// 此方法的内容。
ExpandedSubBlockEnd.gif        
/// </summary>

InBlock.gif        private void InitializeComponent()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{    
InBlock.gif            
this.Load += new System.EventHandler(this.Page_Load);
InBlock.gif
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif        
#endregion

ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

None.gif

转载于:https://www.cnblogs.com/Dragon-China/archive/2006/12/20/598289.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你不想使用数据库,但仍然想实现用TextBox向DataGrid添加数据并存储,并且实现增删改查的功能,你可以尝试以下方法: 1. 创建一个数据模型类来表示你的数据对象。这个类应该包含与你要在DataGrid展示的数据字段对应的属性。 ```csharp public class Person { public string Name { get; set; } public int Age { get; set; } } ``` 2. 在你的应用程序代码,创建一个集合(例如List或ObservableCollection)来存储你的数据对象。 ```csharp List<Person> people = new List<Person>(); ``` 3. 在XAML,将DataGrid控件添加到你的界面上,并设置它的ItemsSource属性为你的数据集合。 ```xaml <DataGrid x:Name="dataGrid" ItemsSource="{Binding people}" AutoGenerateColumns="False"> <DataGrid.Columns> <DataGridTextColumn Header="Name" Binding="{Binding Name}" /> <DataGridTextColumn Header="Age" Binding="{Binding Age}" /> </DataGrid.Columns> </DataGrid> ``` 4. 在代码,通过操作数据集合来实现增删改查的功能。 添加数据: ```csharp Person person = new Person { Name = textBoxName.Text, Age = int.Parse(textBoxAge.Text) }; people.Add(person); dataGrid.Items.Refresh(); // 刷新DataGrid以显示新添加的数据 ``` 删除数据: ```csharp Person selectedPerson = (Person)dataGrid.SelectedItem; people.Remove(selectedPerson); dataGrid.Items.Refresh(); // 刷新DataGrid以更新数据 ``` 修改数据: ```csharp Person selectedPerson = (Person)dataGrid.SelectedItem; selectedPerson.Name = textBoxName.Text; selectedPerson.Age = int.Parse(textBoxAge.Text); dataGrid.Items.Refresh(); // 刷新DataGrid以更新数据 ``` 查询数据: 你可以根据你的需求,通过遍历集合或使用LINQ查询来实现对数据的查询操作。 请注意,这只是一个简单的示例,你可以根据你的需求进行更复杂的操作和数据处理。同时,这种方式只是将数据保存在应用程序内存,如果应用程序关闭,则数据将丢失。如果你希望持久化存储数据,你可以考虑将数据保存到文件或使用其他方式进行数据持久化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值