希望能给个例子(最好是C#的),谢谢!
图片显示希望是动态的
图片显示希望是动态的
解决方案 »
- 如何根据行号取得DataGridView的某一行数据
- 急!!!!在线等!!!!在引用了web服务之后之后怎么调用服务。
- 再问asp.net(C#)生成静态文件(htm)如何进行搜索
- 各位帮个忙
- DataGrid布局的问题,中间出现空格
- Datagrid控件邦定遇到问题,急!万分感谢!
- 动态添加控件的访问
- 偶的合同到期啦,老板不兑现条约,怒
- asp.net第三方控件
- 有个问题~~~有谁遇到过吗?有空的朋友过来看看.DataGride因为是动态生成列,现在无法截取我所需要的时间.
- asp.net怎么提取一个外部网站返回的 xml 结果
- IIS日志中sc-win32-status为64的问题,愿出1000分!
OracleDataAdapter oda=new OracleDataAdapter("select * from cym1.cym ",conn);
DataSet ds=new DataSet();
oda.Fill(ds);
if(ds.Tables[0].Rows.Count>0)
{
byte[] imgdata=(byte[])ds.Tables[0].Rows[(int)Session["pos"]][0];
Response.BinaryWrite(imgdata);
}
protected void Page_Load(object sender, EventArgs e)
{
string id = Request["id"].ToString();
string connstr = "server=.;integrated security=sspi;database=Test";
SqlConnection connection = new SqlConnection(connstr); SqlCommand cmd = new SqlCommand("select ImageData from MyPictures where Id="+id, connection);
connection.Open();
byte[] imageData = (byte[])cmd.ExecuteScalar();
connection.Close();
Response.OutputStream.Write(imageData, 0,imageData.Length);
}然后就可以在别的窗体里动态显示图片了: Image1.ImageUrl = "ShowImage.aspx?id=1";
Image2.ImageUrl = "ShowImage.aspx?id=55";
<%@ WebHandler Language="VB" Class="Handler" %>Imports System
Imports System.Web
imports System.IO
imports System.Data
imports System.Data.SqlClient
Imports System.ConfigurationPublic Class Handler : Implements IHttpHandler Private ConStr As String = ConfigurationManager.ConnectionStrings("ConnectionStore").ConnectionString
Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
'get images type
dim ImageType as String = context.Request.QueryString("type").ToString()
dim ID as Integer = ctype(context.Request.QueryString("id"),Integer)
'set output type
context.Response.ContentType = ImageType
context.Response.Cache.SetCacheability(HttpCacheability.Public)
context.Response.BufferOutput = False
dim Streams as Stream = nothing
'get picture stream from tbBannerAdv
Streams = GetPicture(ID)
'set buffer
dim BufferSize as Int32 = 1024*16
dim Bytes as Byte() = new Byte(BufferSize) {}
dim Count as Integer = Streams.Read(Bytes,0,BufferSize)
while Count>0
context.Response.OutputStream.Write(Bytes,0,Count)
Count = Streams.Read(Bytes,0,BufferSize)
end while
End Sub
Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
Get
Return True
End Get
End Property
'check input is null or empty
Private Function IsNotEmpty(ByVal text As String) As Boolean
Dim Result As Boolean
If String.IsNullOrEmpty(text) Then
Result = False
Else
Result = True
End If
Return Result
End Function
private function GetPicture(id as Integer) as Stream
dim QuerySql as String = "SELECT image FROM tbBannerAdv WHERE id=@ID"
if IsNotEmpty(id) then
using Con as SqlConnection = new SqlConnection(ConStr)
using Cmd as SqlCommand = new SqlCommand(QuerySql,Con)
try
Cmd.Parameters.AddWithValue("@ID",id)
Con.Open()
'get picture
dim Results as Object = cmd.ExecuteScalar()
'return picture stream
return new MemoryStream(ctype(Results,Byte()))
Catch ex As Exception
Con.Dispose()
end try
end using
end using
End If
End Function
End Class
<img src='Handler.ashx?id=<%# Eval("id") %>&type=<%# Eval("ImageMimetype")%>' alt="N/A"
width="160px" height="80px" border="0" />
<%@ Page Language="C#" EnableViewState="true" %><%@ Import Namespace="System.Data.OleDb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> protected void Button1_Click( object sender, EventArgs e )
{
System.IO.Stream fileDataStream = FileUpload1.PostedFile.InputStream; if (fileDataStream.Length < 1)
{
Msg.Text = "请选择文件。";
return;
} //得到文件大小
int fileLength = FileUpload1.PostedFile.ContentLength; //创建数组
byte[] fileData = new byte[fileLength];
//把文件流填充到数组
fileDataStream.Read(fileData, 0, fileLength);
//得到文件类型
string fileType = FileUpload1.PostedFile.ContentType; //构建数据库连接,SQL语句,创建参数
string strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Image2Access.mdb");
OleDbConnection myConnection = new OleDbConnection(strCnn);
OleDbCommand command = new OleDbCommand("INSERT INTO Person (PersonName,PersonEmail,PersonSex,PersonImageType,PersonImage)" +
"VALUES (@PersonName,@PersonEmail,@PersonSex,@PersonImageType,@PersonImage)", myConnection); command.Parameters.AddWithValue("@PersonName",TextBox1.Text);
command.Parameters.AddWithValue("@PersonEmail", "[email protected]");
command.Parameters.AddWithValue("@paramPersonSex", "男");
command.Parameters.AddWithValue("@PersonImageType", fileType);
command.Parameters.AddWithValue("@PersonImage", fileData);
//打开连接,执行查询
myConnection.Open();
command.ExecuteNonQuery();
myConnection.Close();
Response.Redirect(Request.RawUrl);
}
protected void Page_Load( object sender, EventArgs e )
{ if (!Page.IsPostBack)
{
BindGrid();
}
} private void BindGrid( )
{
string strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ Server.MapPath("Image2Access.mdb");
OleDbConnection myConnection = new OleDbConnection(strCnn);
OleDbCommand myCommand = new OleDbCommand("SELECT * FROM Person", myConnection); try
{
myConnection.Open();
GridView1.DataSource = myCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
GridView1.DataBind();
}
catch (OleDbException SQLexc)
{
Response.Write("提取数据时出现错误:" + SQLexc.ToString());
}
}
protected string FormatURL( object strArgument )
{
return "ReadImage.aspx?id=" + strArgument.ToString();
} </script><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>上传文件到数据库</title>
</head>
<body>
<form id="MengXianhui" runat="server">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<%#Eval("PersonName") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<%#Eval("PersonEmail") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<%#Eval("PersonSex") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<img src="<%#FormatURL(Eval("PersonID")) %>" /></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<br />
姓名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
照片:<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="上传" OnClick="Button1_Click"></asp:Button>
<p>
<asp:Label ID="Msg" runat="server" ForeColor="Red"></asp:Label></p>
</form>
</body>
</html>
<%@ Page Language="C#" EnableViewState="true" %><%@ Import Namespace="System.Data.SqlClient" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">
string strCnn = "Persist Security Info=False;User ID=sa;Password=;Initial Catalog=Book;Server=(local);";
protected void Button1_Click( object sender, EventArgs e )
{
System.IO.Stream fileDataStream = FileUpload1.PostedFile.InputStream; if (fileDataStream.Length < 1)
{
Msg.Text = "请选择文件。";
return;
} //得到文件大小
int fileLength = FileUpload1.PostedFile.ContentLength; //创建数组
byte[] fileData = new byte[fileLength];
//把文件流填充到数组
fileDataStream.Read(fileData, 0, fileLength);
//得到文件类型
string fileType = FileUpload1.PostedFile.ContentType; //构建数据库连接,SQL语句,创建参数 SqlConnection myConnection = new SqlConnection(strCnn);
SqlCommand command = new SqlCommand("INSERT INTO UserPhoto (UserName,ContentType,Photo)" +
"VALUES (@UserName,@ContentType,@Photo)", myConnection); command.Parameters.AddWithValue("@UserName", TextBox1.Text);
command.Parameters.AddWithValue("@ContentType", fileType);
command.Parameters.AddWithValue("@Photo", fileData); //打开连接,执行查询
myConnection.Open();
command.ExecuteNonQuery();
myConnection.Close();
Response.Redirect(Request.RawUrl);
}
protected void Page_Load( object sender, EventArgs e )
{ if (!Page.IsPostBack)
{
BindGrid();
}
} private void BindGrid( )
{
SqlConnection myConnection = new SqlConnection(strCnn);
SqlCommand myCommand = new SqlCommand("SELECT * FROM UserPhoto Order By id DESC", myConnection); try
{
myConnection.Open();
GridView1.DataSource = myCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
GridView1.DataBind();
}
catch (Exception SQLexc)
{
Response.Write("提取数据时出现错误:" + SQLexc.ToString());
}
}
protected string FormatURL( object strArgument )
{
return "ReadImage.aspx?id=" + strArgument.ToString();
} </script><html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>上传文件到数据库</title>
</head>
<body>
<form id="MengXianhui" runat="server">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<%#Eval("UserName") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<img src="<%#FormatURL(Eval("id")) %>" /></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<br />
姓名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
照片:<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="上传" OnClick="Button1_Click"></asp:Button>
<p>
<asp:Label ID="Msg" runat="server" ForeColor="Red"></asp:Label></p>
</form>
</body>
</html>显示图片
<%@ Page Language="C#" %><%@ Import Namespace="System.Data.OleDb" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script runat="server"> protected void Page_Load( object sender, EventArgs e )
{
////构建数据库连接,SQL语句,创建参数
//ACCESS数据库使用本注释部分
//string strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Image2Access.mdb");
//OleDbConnection myConnection = new OleDbConnection(strCnn);
//OleDbCommand command = new OleDbCommand("select * from Person Where PersonID =" + Request.QueryString["id"], myConnection);
//myConnection.Open();
//OleDbDataReader dr = command.ExecuteReader();
//if (dr.Read())
//{
// Response.Clear();
// Response.AddHeader("Content-Type", dr["PersonImageType"].ToString());
// Response.BinaryWrite((byte[])dr["PersonImage"]);
//}
//dr.Close();
//myConnection.Dispose(); //构建数据库连接,SQL语句,创建参数
string strCnn = "Persist Security Info=False;User ID=sa;Password=;Initial Catalog=Book;Server=(local);";
SqlConnection myConnection = new SqlConnection(strCnn);
SqlCommand command = new SqlCommand("select * from UserPhoto Where id =" + Request.QueryString["id"], myConnection);
myConnection.Open();
SqlDataReader dr = command.ExecuteReader();
if (dr.Read())
{
Response.Clear();
Response.AddHeader("Content-Type", dr["ContentType"].ToString());
Response.BinaryWrite((byte[])dr["Photo"]);
}
dr.Close();
myConnection.Dispose();
}
</script>创建SQL数据表语句
CREATE TABLE [UserPhoto] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[UserName] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ContentType] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Photo] [image] NOT NULL ,
CONSTRAINT [PK_UserPhoto] PRIMARY KEY CLUSTERED
(
[id]
) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
关键字:ASP.NET2.0 上传文件 数据库