我在网上找了很多的代码 实现了一个用FileUpLoad控件上传照片 但是上传到表中的是二进制流,
我现在没有办法读取这些读片 还有 如果我在表中建立一个递增的主键 就不执行了,本人新手,贴出我找的代码 请高手指点;
Int32 intFileLength;
string strFileType;
string strFileName;
Stream stmFile;
strFileName = "";
string sqlserver=ConfigurationManager.ConnectionStrings["sql"].ToString();
SqlConnection myCon = new SqlConnection(sqlserver);
strFileName = FileBox1.PostedFile.FileName; //获取文件名
intFileLength = FileBox1.PostedFile.ContentLength; //获取文件大小 以字节为单位
strFileType = FileBox1.PostedFile.ContentType; //获取上传类型
stmFile = FileBox1.PostedFile.InputStream; //获取文件准备读取
byte[] ByteFile = new byte[intFileLength];
stmFile.Read(ByteFile, 0, intFileLength); //设置当前流的位置为流的开始
string strCom = "INSERT INTO pic Values(@Name,@FileData,@FileType,@FileLength)";//如果表中有个pid 的递增主键 就上传不上去
SqlCommand myCom = new SqlCommand(strCom, myCon);
myCom.Parameters.Add("@Name", SqlDbType.Char, 255);
myCom.Parameters.Add("@FileData", SqlDbType.Image);
myCom.Parameters.Add("@FileType", SqlDbType.Char, 255);
myCom.Parameters.Add("@FileLength", SqlDbType.BigInt); myCom.Parameters["@Name"].Value = strFileName;
myCom.Parameters["@FileData"].Value = ByteFile;
myCom.Parameters["@FileType"].Value = strFileType;
myCom.Parameters["@FileLength"].Value = intFileLength; myCon.Open();
try
{ myCom.ExecuteNonQuery(); }
catch
{
Response.Write("Other Error");
}
myCon.Close();
}
还有如何用griwview控件读取这些图片 有源码的 请直接贴出 或者发到我邮箱 [email protected]
谢谢
我现在没有办法读取这些读片 还有 如果我在表中建立一个递增的主键 就不执行了,本人新手,贴出我找的代码 请高手指点;
Int32 intFileLength;
string strFileType;
string strFileName;
Stream stmFile;
strFileName = "";
string sqlserver=ConfigurationManager.ConnectionStrings["sql"].ToString();
SqlConnection myCon = new SqlConnection(sqlserver);
strFileName = FileBox1.PostedFile.FileName; //获取文件名
intFileLength = FileBox1.PostedFile.ContentLength; //获取文件大小 以字节为单位
strFileType = FileBox1.PostedFile.ContentType; //获取上传类型
stmFile = FileBox1.PostedFile.InputStream; //获取文件准备读取
byte[] ByteFile = new byte[intFileLength];
stmFile.Read(ByteFile, 0, intFileLength); //设置当前流的位置为流的开始
string strCom = "INSERT INTO pic Values(@Name,@FileData,@FileType,@FileLength)";//如果表中有个pid 的递增主键 就上传不上去
SqlCommand myCom = new SqlCommand(strCom, myCon);
myCom.Parameters.Add("@Name", SqlDbType.Char, 255);
myCom.Parameters.Add("@FileData", SqlDbType.Image);
myCom.Parameters.Add("@FileType", SqlDbType.Char, 255);
myCom.Parameters.Add("@FileLength", SqlDbType.BigInt); myCom.Parameters["@Name"].Value = strFileName;
myCom.Parameters["@FileData"].Value = ByteFile;
myCom.Parameters["@FileType"].Value = strFileType;
myCom.Parameters["@FileLength"].Value = intFileLength; myCon.Open();
try
{ myCom.ExecuteNonQuery(); }
catch
{
Response.Write("Other Error");
}
myCon.Close();
}
还有如何用griwview控件读取这些图片 有源码的 请直接贴出 或者发到我邮箱 [email protected]
谢谢
解决方案 »
- 问下关于excel文件导入数据库代码解释
- asp.net forums开源论坛中发帖上传文件时总是提示find不了文件,急用,在线等
- 关于jQuery ready()中的事件解绑?
- ACCESS上的查询:where id in(@ids)-@ids可以为多个id值吗
- vs.net2005中调试脚出错时不定位在js文件中,而是出现在一个"Webresource.axd这个文件呢
- c#下的网页如何连接vb下的网页????
- 水晶报表的问题!
- 用 c# 怎样根据数据库里的内容动态生成树状菜单?急求。
- 请问w3wp是一个什么进程,为什么我的老在这出错
- 关于asp.net mvc和webform
- windows 2003下IIS无法安装
- 广西家教网添加视频功能http://www.guangxijiajiao.com
Inherits="eMeng.Exam.DataGridShowImage.DataGridShowImage" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>从数据库中取得照片并显示在DataGrid中</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="DataGridShowImage" method="post" runat="server">
<h3 align="center">从数据库中取得照片并显示在DataGrid中</h3>
<asp:DataGrid ID="DG_Persons" AutoGenerateColumns="False" Width="99%" HeaderStyle-BackColor="#ff0000"
HeaderStyle-Font-Bold="True" HeaderStyle-ForeColor="#ffffff" ItemStyle-BackColor="Beige"
BorderColor="#000000" Runat="server" HeaderStyle-HorizontalAlign="Center">
<Columns>
<asp:TemplateColumn HeaderText="姓名">
<ItemTemplate>
<asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonName") %>' ID="Label1"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="电子邮件">
<ItemTemplate>
<asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonEmail") %>' ID="Label2"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="性别">
<ItemTemplate>
<asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonSex") %>' ID="Label3"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="出生日期">
<ItemTemplate>
<asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonDOB") %>' ID="Label4"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="照片">
<ItemTemplate>
<asp:Image Runat=server ID="Image1"
ImageUrl='<%# FormatURL(DataBinder.Eval(Container.DataItem, "PersonID")) %>' />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</form>
</body>
</HTML>DataGridShowImage.aspx.csusing System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;namespace eMeng.Exam.DataGridShowImage
{
/// <summary>
/// DataGridShowImage 的摘要说明。
/// </summary>
public class DataGridShowImage : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DG_Persons; private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!this.IsPostBack)
{
BindGrid();
} }
private void BindGrid()
{
string strCnn = "Data Source=.;Initial Catalog=mxh;User Id=sa;Password=;";
SqlConnection myConnection = new SqlConnection(strCnn);
SqlCommand myCommand = new SqlCommand("SELECT * FROM Person", myConnection);
myCommand.CommandType = CommandType.Text;
try
{
myConnection.Open();
DG_Persons.DataSource = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
DG_Persons.DataBind();
}
catch(SqlException SQLexc)
{
Response.Write("提取数据时出现错误:" + SQLexc.ToString());
}
}
protected string FormatURL(object strArgument)
{
return "ReadImage.aspx?id=" + strArgument.ToString();
}#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}ReadImage.aspx<%@ Page language="c#" Codebehind="ReadImage.aspx.cs" AutoEventWireup="false"
Inherits="eMeng.Exam.DataGridShowImage.ReadImage" %>ReadImage.aspx.csusing System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Data.SqlClient;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace eMeng.Exam.DataGridShowImage
{
/// <summary>
/// ReadImage 的摘要说明。
/// </summary>
public class ReadImage : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string strImageID = Request.QueryString["id"];
SqlConnection myConnection = new SqlConnection("Data Source=.;Initial Catalog=mxh;User Id=sa;Password=;");
SqlCommand myCommand = new SqlCommand("Select PersonImageType, PersonImage from Person Where PersonID="
+ strImageID, myConnection); try
{
myConnection.Open();
SqlDataReader myDataReader;
myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
if(myDataReader.Read())
{
Response.Clear(); Response.ContentType = myDataReader["PersonImageType"].ToString();
Response.BinaryWrite((byte[])myDataReader["PersonImage"]);
}
myConnection.Close();
}
catch (SqlException SQLexc)
{
}
Response.End();
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}