.net网站数据库怎么导出?

.net网站数据库怎么导出?,第1张

这个还得看你的.net网站使用的什么数据库,如果你是想导出数据库数据和表,再放到其他品牌的数据库里,这个我可以说很难,不同品牌数据库目前做不到这样兼容性,毕竟架构差异很大,比如oracle,mysql,sql server之间都是很难直接数据互转的,不知现在有没有这如游样的软件,做数告橡罩据互转!

如果想到仅仅导出的话,各袜闹种数据库都有相应的开发工具,用开发工具就行了!SqlServer有自带的managment studio,Oralce的PL/sql等

我看你的意思是只更换服务器php脚本部分,目前php应该支持好多数据库,可以具体找找方法,连接目前的数据库,才是更好的方法!

实现方法:SqlConnection

conn=new

SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"])SqlDataAdapter

da=new

SqlDataAdapter("select

*

from

tb1",conn)DataSet

ds=new

DataSet()da.Fill(ds,"table1")DataTable

dt=ds.Tables["table1"]string

name=System.Configuration.ConfigurationSettings.AppSettings["downloadurl"].ToString()

DateTime.Today.ToString("yyyyMMdd")

new

Random(DateTime.Now.Millisecond).Next(10000).ToString()

".csv"//存放到web.config中downloadurl指定的路径,文件格式为当前日期

4位滚配随机数FileStream

fs=new

FileStream(name,FileMode.Create,FileAccess.Write)StreamWriter

sw=new

StreamWriter(fs,System.Text.Encoding.GetEncoding("gb2312"))sw.WriteLine("自动编号,姓名,年龄")foreach(DataRow

dr

in

dt.Rows){sw.WriteLine(dr["ID"]

","

dr["vName"]

","

dr["iAge"])}sw.Close()Response.AddHeader("Content-Disposition",

"attachment

filename="

Server.UrlEncode(name))Response.ContentType

=

"application/ms-excel"//

指定返回的是一个不能被客户端读取的流,必须被下载Response.WriteFile(name)

//

把文大乎指件流发送到客户端Response.End()

方法二:导出到csv文件,不存放到服务器,直接给浏览器输出文件流

优点:1、随时生成,不需要占用资源2、可以结合身份认证3、同样利于数据交换

实现方法:SqlConnection

conn=new

SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"])SqlDataAdapter

da=new

SqlDataAdapter("select

*

from

tb1",conn)DataSet

ds=new

DataSet()da.Fill(ds,"table1")DataTable

dt=ds.Tables["table1"]StringWriter

sw=new

StringWriter()sw.WriteLine("自动编号,姓名,年龄")foreach(DataRow

dr

in

dt.Rows){sw.WriteLine(dr["ID"]

","

dr["vName"]

","

dr["iAge"])}sw.Close()Response.AddHeader("Content-Disposition",

"attachment

filename=test.csv")Response.ContentType

=

"application/ms-excel"Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312")Response.Write(sw)Response.End()

对方法一,二补充一点,如果你希望导出的是xls文件分隔符用\t就可以了,不要顷档用逗号

代码修改如下:sw.WriteLine("自动编号\t姓名\t年龄")foreach(DataRow

dr

in

dt.Rows){sw.WriteLine(dr["ID"]

"\t"

dr["vName"]

"\t"

dr["iAge"])}另外,修改输出的文件扩展名为xls即可。

方法三:从datagrid导出html代码,生成excel文件,给客户端下载

优点:1、有固定的格式,样子好看(datagrid的样子)

局限性:1、不适合数据交换,里面有html代码,比较乱,没有固定格式2、datagrid不能有分页、排序等,否则出错

实现方法:Response.Clear()Response.Buffer=

falseResponse.Charset="GB2312"Response.AppendHeader("Content-Disposition","attachmentfilename=test.xls")Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312")

Response.ContentType

=

"application/ms-excel"

this.EnableViewState

=

falseSystem.IO.StringWriter

oStringWriter

=

new

System.IO.StringWriter()System.Web.UI.HtmlTextWriter

oHtmlTextWriter

=

new

System.Web.UI.HtmlTextWriter(oStringWriter)this.DataGrid1.RenderControl(oHtmlTextWriter)Response.Write(oStringWriter.ToString())Response.End()

在这里说明一点:有的网友反映代码出现“没有dr["id"]”之类的错误,这个代码是按照我的数据结构来写的,到时候相关的字段要换成你自己的才是。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12331872.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存