c#.net从excel表导入数据到网页而达到快速增加数据库行的 *** 作

c#.net从excel表导入数据到网页而达到快速增加数据库行的 *** 作,第1张

这样的问题很多了

你需要一个放一个fileupload控件 用来上传excel ,还需要在项目里建一个文件夹用来存放你要上传的excel 。因为系统总是先把文件传到服务器上再进行 *** 作,而不是对每个人的桌面excel直接 *** 作。

using SystemDataSqlClient;

using SystemDataOleDb; //  要加这两句

public DataSet ExecleDs(string filenameurl, string table) // 这个函数就是将上传的excel读入dataset

{

string strConn = "Provider=MicrosoftJetOleDb40;" + "data source=" + filenameurl + ";Extended Properties='Excel 80; HDR=YES; IMEX=1'"; // 这里excel03 如要该成07版再问我或者百度

string strcom = "select from [Sheet1$]";

OleDbConnection conn = new OleDbConnection(strConn);

connOpen();

DataSet ds = new DataSet();

OleDbDataAdapter odda = new OleDbDataAdapter(strcom, conn);

oddaFill(ds, table);

return ds;

}

protected void Button4_Click(object sender, EventArgs e) // 你的那个确定按钮

{

SqlConnection con = new SqlConnection();

conConnectionString = "server='CWJMXT-14\\SQLEXPRESS';database='E-test';uid='sa';pwd=‘'" ; // 你自己的数据库连接

if (FileUpload1HasFile == false)//HasFile用来检查FileUpload是否有指定文件

{

ResponseWrite("<script>alert('请您选择Excel文件')</script> ");

return;//当无文件时,返回

}

string IsXls = SystemIOPathGetExtension(FileUpload1FileName)ToString()ToLower();//SystemIOPathGetExtension获得文件的扩展名

if (IsXls != "xls")

{

ResponseWrite("<script>alert('只可以选择Excel文件')</script>");

return;//当选择的不是Excel文件时,返回

}

conOpen();

string filename = FileUpload1FileName; //获取Execle文件名 DateTime日期函数

// Label2Text = filename;

string savePath = ServerMapPath(("~\\upfiles\\") + filename);//ServerMapPath 获得虚拟服务器相对路径

FileUpload1SaveAs(savePath); //SaveAs 将上传的文件内容保存在服务器上

DataSet ds = ExecleDs(savePath, filename); //调用自定义方法

DataRow[] dr = dsTables[0]Select(); //定义一个DataRow数组

int rowsnum = dsTables[0]RowsCount;

if (rowsnum == 0)

{

ResponseWrite("<script>alert('Excel表为空表,无数据!')</script>"); //当Excel表为空时,对用户进行提示

}

else

{

for (int i = 0; i < drLength; i++)

{

//string pininputdate = dr[i]["]ToString();//日期 excel列名名称不能变,否则就会出错

string insertstr = "insert into item1(试题组别,试题类型,试题题目,选项A,选项B,选项C,选项D,正确答案,随机或必出)values('" + dr[i][0]ToString() + "','" + dr[i][1]ToString() + "','" + dr[i][2]ToString() + "','" + dr[i][3]ToString() + "','" + dr[i][4]ToString() + "','" + dr[i][5]ToString() + "','" + dr[i][6]ToString() + "','" + dr[i][7]ToString() + "','" + dr[i][8]ToString() + "')"; //这里就是具体怎么样一行一行将dataset中的数据导入sql的 你也可以加一些其他判断什么的。 SqlCommand cmd = new SqlCommand(insertstr, con);

try

{

cmdExecuteNonQuery();

}

catch (MembershipCreateUserException ex) //捕捉异常

{

ResponseWrite("<script>alert('导入内容:" + exMessage + "')</script>");

}

}

ResponseWrite("<script>alert('Excle表导入成功!');location='itemmaintainaspx'</script>");

}

conClose();

}

你的数据库是什么数据库?如果是ACCESS,建议你导入到MySQL中去,MySQL据说是世界上执行速度最快的数据库了,如果是MSSQL,请使用存储过程执行查询,可以大提高数据库的运行速度。你的问题我曾经碰到过,当时我使用的是ACCESS数据库,数据库中的数据达到20万条记录了,查询起来速度特慢,后来改用MSSQL的存储过程,速度提高了很多,你试试吧,祝你成功!

在需要支持移动/平板电脑应用及普通桌面浏览器访问的时代,网站的普及率和有效性很大程度上取决于其可用性和性能。一个访问缓慢的网站会使得访问者或潜在的客户流失,并导致商业的失败。IT培训认为一个访问速度相当快的网站将会决定访客是否会使用网站提供的产品或服务。

拥有大规模数据库的网站始终需要适当的关注、配置、优化、调整和维护,以确保网站的快速加载。这篇文章将讨论如何优化有海量数据的MySQL数据库。

选择InnoDB作为存储引擎

大型产品的数据库对于可靠性和并发性的要求较高,InnoDB作为默认的MySQL存储引擎,相对于MyISAM来说是个更佳的选择。

优化数据库结构

组织数据库的schema、表和字段以降低I/O的开销,将相关项保存在一起,并提前规划,以便随着数据量的增长,性能可以保持较高的水平。

设计数据表应尽量使其占用的空间最小化,表的主键应尽可能短。

对于InnoDB表,主键所在的列在每个辅助索引条目中都是可复制的,因此如果有很多辅助索引,那么一个短的主键可以节省大量空间。

仅创建你需要改进查询性能的索引。索引有助于检索,但是会增加插入和更新 *** 作的执行时间。

InnoDB的ChangeBuffering特性

InnoDB提供了changebuffering的配置,可减少维护辅助索引所需的磁盘I/O。大规模的数据库可能会遇到大量的表 *** 作和大量的I/O,以保证辅助索引保持最新。当相关页面不在缓冲池里面时,InnoDB的changebuffer将会更改缓存到辅助索引条目,从而避免因不能立即从磁盘读取页面而导致耗时的I/O *** 作。当页面被加载到缓冲池时,缓冲的更改将被合并,更新的页面之后会刷新到磁盘。这样做可提高性能,适用于MySQL55及更高版本。

以上就是关于c#.net从excel表导入数据到网页而达到快速增加数据库行的 *** 作全部的内容,包括:c#.net从excel表导入数据到网页而达到快速增加数据库行的 *** 作、数据库表中大量的数据,如何提高查询速度、IT培训分享大规模数据库的性能和伸缩性的优化等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/sjk/9540560.html

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

发表评论

登录后才能评论

评论列表(0条)

保存