成都网站建设设计

将想法与焦点和您一起共享

zblog批量写入数据库 zblog批量上传文章

如何将文本文档批量数据导入到数据库中

asp.net/c#代码实现excel to mssql数据导入

金寨网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站开发等网站项目制作,到程序开发,运营维护。成都创新互联2013年开创至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联

2008年12月17日 星期三 13:42

做网站项目时,可能会遇到将excel文件中的数据导入至sql server数据库的需求,把excel也看作数据库,使用OleDb连接后读取数据然后写入用SqlClient连接的sql server数据库即可,技术上没有什么难度。

但是需要考虑的一个问题是,系统安装的环境一般是专用sql server服务器+web服务器+客户端,而excel文件往往在客户端导入,如果直接使用sql语句读取的话,由于sql在web服务器上运行,不能读取到客户端的excel地址,就会出错了。

既然知道了错误的原因,解决方案也就有了:

1、把客户端的excel上传至web服务器上某文件夹,注意要给该文件夹设置网络用户的“写入”权限;

2、使用OleDb+sql语句读取web服务器上的excel文件

3、将读取的数据写入到sql server 数据库

4、将web服务器上的临时excel删除

部分代码如下:

string filename = FileUpload1.PostedFile.FileName.Substring(FileUpload1.PostedFile.FileName.LastIndexOf("\\"));

FileUpload1.PostedFile.SaveAs(Server.MapPath("fileupload\\") + filename);//上传文件

string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("fileupload\\") + filename + ";Extended Properties=Excel 8.0";

string sqlin = "SELECT * FROM [Sheet2$]";

OleDbCommand olecommand = new OleDbCommand(sqlin, new OleDbConnection(conn));

OleDbDataAdapter adapterin = new OleDbDataAdapter(olecommand);

DataSet dsin = new DataSet();

adapterin.Fill(dsin);

DataTable dtin = dsin.Tables[0];//连接并读取excel数据

for (i = 3; i = totalrow; i++)//将Excel文件中第一个工作表的数据导入到sql数据库scjd_youliaoxiaohaojihua表中

{

string sql = "insert into scjd_youliaoxiaohaojihua(yuexuhao,danwei,youpin,cheliangmingchengxinghao,zichanxingzhi,chepaihao,qiyou,chaiyou,beizhu) values('";

int j;

sql += DropDownList1.SelectedValue.ToString() + DropDownList3.SelectedValue.ToString();

if (DropDownList1.SelectedValue.ToString() != DateTime.Now.Year.ToString() || int.Parse(DateTime.Now.Month.ToString()) != int.Parse(DropDownList3.SelectedValue.ToString()))

{

sql += "20";

}

else

{

if (int.Parse(DateTime.Now.Day.ToString()) 10)

sql += "0";

sql += DateTime.Now.Day.ToString();

}

if (i-3 + count 9)

sql += "00";

else if (i-3 + count 99)

sql += "0";

sql += (i -3 + 1 + count).ToString();

sql += "','";

for (j = 1; j 8; j++)

{//遍历Excel表中一行的所有列,除最后一列

sql += dtin.Rows[i][j].ToString().Trim();

sql += "','";

}

sql += dtin.Rows[i][8].ToString().Trim();

sql += "')";

try

{

DoSql(sql);

}

catch (Exception eeeeeee)

{

Response.Write("scriptalert('数据导入错误,请检查Excel文件')/script");

return;

}

}

FileInfo file = new FileInfo(Server.MapPath("fileupload/") + filename);

if (file.Exists)

{//删除文件

file.Delete();

}

protected void DoSql(string sql)//执行sql语句的函数

{

SqlConnection conn = new SqlConnection();//创建连接对象

conn.ConnectionString = ConfigurationManager.AppSettings["conn"].ToString();//给连接字符串赋值

conn.Open();//打开数据库

SqlCommand cmd = new SqlCommand(sql, conn);

cmd.ExecuteNonQuery();//

conn.Close();//关闭数据库

}

注:

1、本文代码均取自我最近刚做的一个小项目,部分数据有较强针对性,并不通用,只有思路通用

2、由于能力和水平问题,部分代码显得有些笨拙,若能灵活运用存储过程,应能大幅度简化代码 只要你的文件能够用记事本打开并格式正确,就可以把他认为是文本文件进行处理.

象这种格式的数据没有什么太好的办法,只有从文本文件中逐行读取解析,当读到完整的记录时执行SQL语句插入到数据库中.

解析txt文件,将文件中明细批量插入mysql数据库表中,怎么做?

批量写入,提高效率,最简单直接的办法就是:

txt文本

作为一个数据源处理,而不是文件读取,这样,通过数据源,就可以直接批量读取为一个recordset,然后,直接写入数据库了。

ps:这要求

文本文件格式

非常规律,如果不行,自己尝试在内存里面构建recordset吧。

数据库如何批量插入数据?

解决方法:

添加事务处理,把5000条插入作为一个事务

dataBase.beginTransaction(); //手动设置开始事务

//数据插入操作循环

dataBase.setTransactionSuccessful(); //设置事务处理成功,不设置会自动回滚不提交

dataBase.endTransaction(); //处理完成

将数据库「倒出来」:

sqlite3 film.db ".dump" output.sql

利用输出的资料,建立一个一模一样的数据库(加上以上指令,就是标准的SQL数据库

备份了):

sqlite3 film.db output.sql

在大量插入资料时,你可能会需要先打这个指令:

begin;

插入完资料后要记得打这个指令,资料才会写进数据库中:

commit;

Zblog如何实现批量修改文章内容?

把数据库下载下来 进数据库 批量替换

数据库替换命令输入。

UPDATE zbp_post SET log_Content = REPLACE(log_Content, '原内容', '新内容' ) ;


标题名称:zblog批量写入数据库 zblog批量上传文章
路径分享:http://chengdu.cdxwcx.cn/article/doehpeh.html