WPF 将excel表数据导入到sql,求代码

FN_pndx 2016-04-21 10:22:04
已将excel表导入到datatable,现在要通过按钮,将数据导入到Sql。
...全文
340 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
FN_pndx 2016-04-26
  • 打赏
  • 举报
回复
您好!我是新手,您讲的我不太懂。我现在就是已经将excel到dataset里,要选中文档,通过botton将它导出到pl/sql 数据库。如果可以有代码就更好了。用的是wpf.
  • 打赏
  • 举报
回复
循坏DataTable的Rows,拼接insert 语句。
alanking423 2016-04-26
  • 打赏
  • 举报
回复
//上传按钮事件 protected void btnUpload_Click(object sender, EventArgs e) { string filepath = txtImgUrl.Text.Trim(); if(string.IsNullOrEmpty(filepath)){ MessageBox.Show(this,"上传文件不能为空!"); return; } DataTable dt = new DataTable(); dt = Common.ExcelHelper.ExcelDs(HttpContext.Current.Server.MapPath(filepath)).Tables[0]; //过滤excel里面重复的数据 DataView myDateView = new DataView(dt); string[] strComuns = { "警员身份证号","考试成绩","获得积分","积分备注","添加日期"}; dt = myDateView.ToTable(true,strComuns); ArrayList sqllist = new ArrayList(); foreach (DataRow lst in dt.Rows) { if(!string.IsNullOrEmpty(lst[0].ToString())){ //验证excel文件里的数据是否和数据库重复 string sqlcount = string.Format(@" select count(FeedBackIdCard) as H from BonusRecord where FeedBackIdCard=@IdCard and ExamScore=@Score and BonusActual=@actual and BonusContent=@content and BonusDate=@date "); OleDbParameter p1 = new OleDbParameter("@IdCard", lst[0]); OleDbParameter p2 = new OleDbParameter("@Score", lst[1]); OleDbParameter p3 = new OleDbParameter("@actual", lst[2]); OleDbParameter p4 = new OleDbParameter("@content", lst[3]); OleDbParameter p5 = new OleDbParameter("@date", lst[4]); int recordCount = Convert.ToInt32(DbHelperOleDb.GetSingle(sqlcount, p1, p2, p3, p4, p5)); if (recordCount > 0) { string title = lst[0].ToString() + lst[1] + lst[2] + lst[3] + lst[4].ToString(); MessageBox.Show(this, "出现重复的数据" + title); return; } else { string sql = string.Format(@"insert into BonusRecord (FeedBackIdCard,ExamScore,BonusActual,BonusContent,BonusDate) values('{0}','{1}','{2}','{3}','{4}')", lst[0], lst[1], lst[2], lst[3], lst[4] ); sqllist.Add(sql); } } } if(dt.Rows.Count>0){ if (DBUtility.DbHelperOleDb.ExecuteSqlTran(sqllist)) { Response.Write("<script>alert('上传成功!');location.href='BonusRecordList.aspx'</script>"); } else { MessageBox.Show(this,"上传失败,请检查格式!"); } } } 用循环生成sql语句,在批量插入,最近刚做的东西,aspx页面,数据库是access的,不知道对你有用没
  • 打赏
  • 举报
回复
效率差点的,就将excel当做数据源通过ado.net访问,然后插入数据库 效率要好点的,就通过npoi之类的dll读取excel

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧