欢迎光临
我们一直在努力

用ado.net对word,excel进行存取-ASP教程,数据库相关

建站超值云服务器,限时71元/月

blob表

3 id int 4 0

0 name char 50 1

0 blob image 16 1

0 type char 60 1

savefile.aspx.cs

private void button1_click(object sender, system.eventargs e)

{

stream imgdatastream = file1.postedfile.inputstream;

int imgdatalen = file1.postedfile.contentlength;

string imgtype = file1.postedfile.contenttype;

string name = this.getfilenamebyurl(this.file1.postedfile.filename);

byte[] imgdata = new byte[imgdatalen];

int n = imgdatastream.read(imgdata,0,imgdatalen);

string connstr = "workstation id=overmind;packet size=4096;user id=sa;password=sa;data source=overmind;persist security info=false;initial catalog=wztj";

sqlconnection connection = new sqlconnection(connstr);

sqlcommand command = new sqlcommand("insert into blob(name,type,blob) values ( @imgtitle, @type,@blob )", connection );

sqlparameter paramtitle = new sqlparameter("@imgtitle", sqldbtype.varchar,50 );

paramtitle.value = name;

command.parameters.add(paramtitle);

sqlparameter paramdata = new sqlparameter( "@blob", sqldbtype.image );

paramdata.value = imgdata;

command.parameters.add( paramdata );

sqlparameter paramtype = new sqlparameter( "@type", sqldbtype.varchar,50 );

paramtype.value = imgtype;

command.parameters.add( paramtype );

wztj.debug.testsql.traceerrorsql("insert into blob(name,type,blob) values ( @imgtitle, @type,@blob )",command.parameters);

connection.open();

int numrowsaffected = command.executenonquery();

connection.close();

}

listfile.aspx//这个东西主要用来列表,把已经有的东西列出来

<asp:hyperlinkcolumn datanavigateurlfield="id" headertext="产品名称" datanavigateurlformatstring="./getfile.aspx?id={0}" datatextfield="name" datatextformatstring="{0}" itemstyle-horizontalalign="center" itemstyle-width="160px">

listfile.aspx.cs

string connstr="workstation id=overmind;packet size=4096;user id=sa;password=sa;data source=overmind;persist security info=false;initial catalog=wztj";

sqlconnection connection = new sqlconnection(connstr);

sqlcommand command = new sqlcommand("select * from blob", connection );

connection.open();

sqldataadapter adaptor = new sqldataadapter(command);

dataset ds = new dataset();

adaptor.fill(ds,"blob");

connection.close();

this.datagrid1.datasource=ds.tables["blob"].defaultview;

this.datagrid1.databind();

getfile.aspx.cs//这个文件比较重要负责把村道数据库里面的文件,按照格式,按照名称,给传输出来

private void page_load(object sender, system.eventargs e)

{

string imgid =this.request.querystring.get("id");

//request.querystring["imgid"];

string connstr="workstation id=overmind;packet size=4096;user id=sa;password=sa;data source=overmind;persist security info=false;initial catalog=wztj";

string sql="select name,blob, type from blob where id = " + imgid;

sqlconnection connection = new sqlconnection(connstr);

sqlcommand command = new sqlcommand(sql, connection);

connection.open();

sqldatareader dr = command.executereader();

if(dr.read())

{

response.clear();

response.buffer= true;

response.charset="gb2312";

response.contentencoding=system.text.encoding.getencoding("gb2312");//设置输出流为简体中文

//response.contenttype = "application/ms-word";//设置输出文件类型为word文件。

response.contenttype = dr["type"].tostring();

response.binarywrite( (byte[]) dr["blob"] );

string filename = dr["name"].tostring().trim();

filename=system.web.httputility.urlencode(filename,system.text.encoding.utf8 );

response.appendheader("content-disposition", "attachment;filename="+filename);

}

connection.close();

}

这里要说的有两点,第一,就是把文件的名称getfile.aspx变成我们想要的名称。

response.appendheader("content-disposition", "attachment;filename="+filename);

第二,就是把指定的名称变成我们想要的值,是标准的中文,而不是中文的乱码。

filename=system.web.httputility.urlencode(filename,system.text.encoding.utf8 );

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 用ado.net对word,excel进行存取-ASP教程,数据库相关
分享到: 更多 (0)

相关推荐

  • 暂无文章