开发者社区> 暖枫无敌> 正文

asp.net 操作Excel表数据导入到SQL Server数据库

简介: 代码全部贴出,主要是Excel表中的数据要和数据库中的数据类型要匹配。 这里Excel表中的字段是: 姓名、性别、班级、学号、初始密码 SQL Server表tb_Users中的字段是; R...
+关注继续查看

代码全部贴出,主要是Excel表中的数据要和数据库中的数据类型要匹配。

这里Excel表中的字段是:

姓名性别班级学号初始密码

SQL Server表tb_Users中的字段是;

RealNameSexInClassQuestionAnswer


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="TEST_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:FileUpload ID="FileUpload1" runat="server" />
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
    </div>
    </form>
</body>
</html>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.OleDb;
using System.Data;
using USTC;
using System.Drawing;

public partial class TEST_Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        //获取文件路径
        string filePath = this.FileUpload1.PostedFile.FileName;
        if (filePath != "")
        {
            if (filePath.Contains("xls"))//判断文件是否存在
            {
                InputExcel(filePath);
            }
            else
            {
                Response.Write("请检查您选择的文件是否为Excel文件!谢谢!");
            }
        }

        else
        {
            Response.Write("请先选择导入文件后,再执行导入!谢谢!");
        }
    }

    private void InputExcel(string pPath)
    {
         string conn = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" + pPath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
        OleDbConnection oleCon = new OleDbConnection(conn);
        oleCon.Open();
        string Sql = "select * from [Sheet1$]";
        OleDbDataAdapter mycommand = new OleDbDataAdapter(Sql, oleCon);
        DataSet ds = new DataSet();
        mycommand.Fill(ds, "[Sheet1$]");
        oleCon.Close();
        int count = ds.Tables["[Sheet1$]"].Rows.Count;
        for (int i = 0; i < count; i++)
        {
            string tRealName, tSex, tInClass, tQuestion, tAnswer;
            tRealName = ds.Tables["[Sheet1$]"].Rows[i]["姓名"].ToString().Trim();
            tSex = ds.Tables["[Sheet1$]"].Rows[i]["性别"].ToString().Trim();
            tInClass = ds.Tables["[Sheet1$]"].Rows[i]["班级"].ToString().Trim();
            tQuestion = ds.Tables["[Sheet1$]"].Rows[i]["学号"].ToString().Trim();
            tAnswer = ds.Tables["[Sheet1$]"].Rows[i]["初始密码"].ToString().Trim();
            string excelsql = "insert into tb_Users(RealName, Sex, InClass,Question,Answer) values ('" + tRealName + "','" + tSex + "','" + tInClass + "','" + tQuestion + "','" + tAnswer + "')";
            try
            {
                //导入到SQL Server中
                DM dm = new DM();
                dm.execsql(excelsql);
                Response.Write("<script language='javascript'>Alert('数据导入成功!');window.location='Default.aspx'</script>");
            }
            catch(Exception)
            {
                Response.Write("<script language='javascript'>Alert('数据导入失败!');window.location='Default.aspx'</script>");
            }
        }
    }
}


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【SQL开发实战技巧】系列(八):聊聊如何插入数据时比约束更灵活的限制数据插入以及怎么一个insert语句同时插入多张表
插入数据、阻止对某几列插入的实现、复制表的定义和数据以及注意事项、比创建约束功能更强大!用 WITH CHECK OPTION限制数据录入、如何一个insert将数据同时插入多个表【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。但是!ORA - 01723 : 不允许长度为 0 的列。
22 0
使用PD(PowerDesigner)图如何快速生成创建数据库表的SQL脚本并生成表在数据库
使用PD(PowerDesigner)图如何快速生成创建数据库表的SQL脚本并生成表在数据库
30 0
SQL中,表之间的左联和右联是什么意思
SQL中,表之间的左联和右联是什么意思
34 0
MYSQL 批量修改表前缀与删除数据表 sql 语句
MYSQL 批量修改表前缀与删除数据表 sql 语句
56 0
SQL Server 删除数据库所有表和所有存储过程
SQL Server 删除数据库所有表和所有存储过程
39 0
SQL SERVER 被锁住的表,以及解锁。
SQL SERVER 被锁住的表,以及解锁。
39 0
mysql查询所有数据库、表、字段常用sql语句
mysql查询所有数据库、表、字段常用sql语句
70 0
动态批量新建SQL数据库中的表
动态批量新建SQL数据库中的表
40 0
动态批量删除SQL数据库中的表
动态批量删除SQL数据库中的表
61 0
SQL 语法--表特定语句--分组、排序、过滤 | 学习笔记
快速学习 SQL 语法--表特定语句--分组、排序、过滤
62 0
+关注
暖枫无敌
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
用SQL做数据分析
立即下载
阿里云流计算 Flink SQL 核心功能解密
立即下载
Comparison of Spark SQL with Hive
立即下载