C# 关于Excel导不同表的问题 高分

问题描述

C#做个通用实现不同Excel表导入不同数据库问题出现在导入一个表时那就对应这个表字段完事数据库里建相同字段的数据库那我想实现好几个Excel表导入不同数据库怎么做因为每个表字段不一样怎么能实现简单点就假如我就要导5个表而且把表字段都对应了我做的是导1表就把其余4个表字段注释了我想怎么能不用注释想导几表就是几表会的帮帮忙谢啦privatevoidbutton3_Click(objectsender,EventArgse){//添加单挑记录//stringname=dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//intage=Convert.ToInt32(dataGridView1.SelectedRows[0].Cells[1].Value.ToString());//stringxbie=dataGridView1.SelectedRows[0].Cells[2].Value.ToString();//Add(name,age,xbie);boolbFlag=AddDatasetToSQL(ExecleDs(txtEntry.Text));}///<summary>///将Dataset的数据导入数据库///</summary>///<paramname="pds">数据集</param>///<paramname="Cols">数据集列数</param>///<returns></returns>publicboolAddDatasetToSQL(DataSetpds){if(pds!=null&&pds.Tables[0].Rows.Count>0){for(inti=1;i<pds.Tables[0].Rows.Count;i++){//类型表Add(//Convert.ToInt32(pds.Tables[0].Rows[i][0].ToString()),pds.Tables[0].Rows[i][0].ToString(),pds.Tables[0].Rows[i][1].ToString());}//类别表//Add(//Convert.ToInt32(pds.Tables[0].Rows[i][0].ToString()),//pds.Tables[0].Rows[i][0].ToString(),//pds.Tables[0].Rows[i][1].ToString());//}//名称表//stringExistSql="selectcount(*)fromTable_namewhereForm_a_name='"+pds.Tables[0].Rows[i][1].ToString()+"'";//if((int)SQLE.GetScalarData(ExistSql)>0)//{//MessageBox.Show("该记录已存在!");//returnfalse;//}//Add(pds.Tables[0].Rows[i][0].ToString(),//pds.Tables[0].Rows[i][1].ToString(),//pds.Tables[0].Rows[i][2].ToString());//}//材质表//stringExistSql="selectcount(*)fromTable_materwhereCard_number='"+pds.Tables[0].Rows[i][1].ToString()+"'";//if((int)SQLE.GetScalarData(ExistSql)>0)//{//MessageBox.Show("该记录已存在!");//returnfalse;//}//Add(pds.Tables[0].Rows[i][0].ToString(),//pds.Tables[0].Rows[i][1].ToString());//}//规格表//Add(pds.Tables[0].Rows[i][0].ToString(),//pds.Tables[0].Rows[i][1].ToString());//}MessageBox.Show("插入成功!");}else{thrownewException("导入数据为空!");}returntrue;}///<summary>///插入数据到数据库///</summary>//类型表publicvoidAdd(stringMetal_category,stringCategory_classcode){StringBuilderstrSql=newStringBuilder();strSql.Append("insertintoTable_type(");strSql.Append("Metal_category,Category_classcode");strSql.Append(")");strSql.Append("values(");strSql.Append("'"+Metal_category.Trim()+"',");strSql.Append("'"+Category_classcode.Trim()+"'");//类别表//publicvoidAdd(stringForm_category,stringForm_category_c)//{//StringBuilderstrSql=newStringBuilder();//strSql.Append("insertintoTable_category(");//strSql.Append("Form_category,Form_category_c");//strSql.Append(")");//strSql.Append("values(");//strSql.Append("'"+Form_category.Trim()+"',");//strSql.Append("'"+Form_category_c.Trim()+"'");//名称表//publicvoidAdd(stringForm_a_subclass_c,stringForm_a_name,stringReferred_to)//{//StringBuilderstrSql=newStringBuilder();//strSql.Append("insertintoTable_name(");//strSql.Append("Form_a_subclass_c,Form_a_name,Referred_to");//strSql.Append(")");//strSql.Append("values(");//strSql.Append("'"+Form_a_subclass_c+"',");//strSql.Append("'"+Form_a_name.Trim()+"',");//strSql.Append("'"+Referred_to.Trim()+"'");//材质表//publicvoidAdd(stringBrand,stringCard_number)//{//StringBuilderstrSql=newStringBuilder();//strSql.Append("insertintoTable_mater(");//strSql.Append("Brand,Card_number");//strSql.Append(")");//strSql.Append("values(");//strSql.Append("'"+Brand.Trim()+"',");//strSql.Append("'"+Card_number.Trim()+"'");//规格表//publicvoidAdd(stringSpecification_name,stringSpecification)//{//StringBuilderstrSql=newStringBuilder();//strSql.Append("insertintoTable_specifications(");//strSql.Append("Specification_name,Specification");//strSql.Append(")");//strSql.Append("values(");//strSql.Append("'"+Specification_name.Trim()+"',");//strSql.Append("'"+Specification.Trim()+"'");strSql.Append(")");SqlConnectionconn=newSqlConnection(strConn);conn.Open();SqlCommandcomd=newSqlCommand(strSql.ToString(),conn);comd.ExecuteNonQuery();conn.Close();

解决方案

解决方案二:
用if判断啊,,不执行代码就可以了
解决方案三:
界面上做个选择项,根据选择项来判断导入那个表就可以
解决方案四:
可以用OleDbConnection类的GetSchema方法得到Excel各个表的各个列的列标题,然后匹配一下,就知道要导入的是哪个表,这样就不用人工选了

时间: 2024-09-14 02:49:20

C# 关于Excel导不同表的问题 高分的相关文章

请教c#读取EXCEL 写入新表?

问题描述 读取已有excel表该表格式:姓名年龄身份证性别部门修改为下列格式并导出新表:姓名部门性别年龄身份证(只要后5位)请问该如何实现?谢谢!请给出实例代码,谢谢! 解决方案 解决方案二:读到数组里,然后修改,再写回到excel里面,这样最快解决方案三:用npoi读写excel即可.解决方案四:读取excel到新的dt1,声明新的dt2,遍历dt1数据到dt2.解决方案五:大概道理我也懂,只是写困难.所以要实际代码!

Excel应用教程:Excel数据透视表分类求学生成绩平均值

期末统考结束后,教育局要求全市学生的成绩都汇总在如图1的同一个Excel工作表中,并要求求出各学校.各专业.各学科的平均分. 全市三个学校.每个学校都有六个专业.每个专业都有五门课.各专业人数不等,总计有1000余人,工作量巨大.但如果采用Excel数据透视表来完成的话,呵呵,就简单多了. 一.创建数据透视表 点击菜单命令"数据→数据透视表和数据透视图",打开"数据透视表和数据透视图向导"对话框. 第一步,如图2所示,选择"Microsoft Excel数

Excel数据透视表:以自己的方式查看数据

  Microsoft Office Excel 2003 工作表是组织和分析财务数据的理想工具.例如,您可能会创建一个包含差旅住宿费的工作表.如果需要各个季度的分类汇总,您知道如何相应地修改工作表. 但是,在需要按季度查看费用类别总计时会发生什么情况呢?而且如果您每次只想查看某一类或某一年份又该怎么办呢?在 Excel 工作表中能实现这些吗?当然可以.有没有更容易的方法?肯定有. ·一种更容易的方法 Microsoft PivotTable 报表就是答案.不必写入复杂的公式,您可以使用向导创建

自动清除Excel数据透视表中的垃圾条目

当Excel数据透视表的源数据发生变动后,通常需要对数据透视表进行刷新操作,以将变动后的数据更新到数据透视表中.但是,有些在源数据中已经消失的数据项,却还残留在行字段或列字段的下拉筛选列表中. 要清除这些Excel数据透视表"垃圾"条目,除了常用的手动删除再恢复字段的方法,还可通过设置让数据透视表实现自动清除.方法如下. 选中数据透视表中任一单元格,在"选项"功能区下单击"数据透视表→选项"命令,打开"数据透视表选项"对话框.

Excel数据透视表10大常用技巧

  Excel数据透视表10大常用技巧           1.样式改变为表格样式 2.计数项改为求和项 3.套用样式 4.隐藏和显示汇总项 5.合并单元格 6.列宽及格式保持不变

Excel数据透视表使用过程中常见问题

  Excel数据透视表使用过程中常见问题            一.无法创建数据透视表 如果数据源表中有合并单元格,导致标题行为空,则会提示字段名无效. 二.更新后格式没有了 数据透视表设置列宽后或其他格式后,刷新后设置的格式失效了. 三.计数项的烦恼 问:制作完成的数据透视表显示计数项,为什么不是求和项? 答:数据源中含空单元格(包括多选的空行),可以先选前2行制作数据透视表,然后再修改数据源. 四.日期不能分组 问:为什么日期无法使用组合功能,按月份组? 答:日期列含非日期格式的值,包括文

Excel复制工作表动画教程

<Excel2003入门动画教程45.Excel复制工作表>. 演示动画 操作步骤 Excel同一工作簿中,我们经常需要对某个工作表进行整体复制.移动,可以通过"鼠标拖拉法"来实现. 工作表的移动:选中需要复制的工作表标签(Sheet1.Sheet2等),按住左键拖拉至目标位置后松开鼠标即可. 工作表的复制:在按住Ctrl键的同时,进行上述操作,即可实现工作表的复制. 注意:如果同时选中了多个工作表,仿照上述操作,同样可以进行复制和移动.

使用 Excel 数据透视表查看数据

  Excel 2003 工作表是组织和分析财务数据的理想工具.例如,您可能会创建一个包含差旅住宿费的工作表.如果需要各个季度的分类汇总,您知道如何相应地修改工作表. 但是,在需要按季度查看费用类别总计时会发生什么情况呢?而且如果您每次只想查看某一类或某一年份又该怎么办呢?在 Excel 工作表中能实现这些吗?当然可以.有没有更容易的方法?肯定有. ·一种更容易的方法 Microsoft PivotTable 报表就是答案.不必写入复杂的公式,您可以使用向导创建一个交互式表格来自动提取.组织和汇

Excel撤销工作表保护密码图文教程介绍

  我们经常使用Excel的工作表保护功能,将工作表用密码保护起来,以防别人操作时进行修改,但是这样一来有可能会无法进行一些操作(如输入公式等),时间久了保护的密码也有可能忘记了,这该怎么办呢?只要按照以下步骤操作,Excel工作表保护密码瞬间即破! 1.打开您需要破解保护密码的Excel文件; 2.依次点击菜单栏上的工具---宏----录制新宏,输入宏名字如:aa; 3.停止录制(这样得到一个空宏); 4.依次点击菜单栏上的工具---宏----宏,选aa,点编辑按钮; 5.删除窗口中的所有字符