ASP.NET中如何将Excel表中的数据导入到数据库中?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET中如何将Excel表中的数据导入到数据库中?相关的知识,希望对你有一定的参考价值。

请给出具体的代码实现 。 谢谢

ASP.NET中将Excel表中的数据导入到数据库中的方法是利用可视化界面工具直接选择字段映射导入。
1)接受数据导入的表已经存在。
insert into t1 select * from OPENROWSET(\'MICROSOFT.JET.OLEDB.4.0\' ,
\'Excel 5.0;HDR=YES;DATABASE=c:\\\\test.xls\',sheet1$);
2)导入数据并生成表。
select * into t1 from OPENROWSET(\'MICROSOFT.JET.OLEDB.4.0\',
\'Excel 5.0;HDR=YES;DATABASE=c:\\\\test.xls\',sheet1$);

3) 导入Excel中指定的列到数据库表中指定的列。
INSERT INTO t1(a1,a2,a3) SELECT a1,a2,a3 FROM OPENROWSET\'MICROSOFT.JET.OLEDB.4.0\' ,\'Excel5.0; HDR=YES; DATABASE=c:\\\\test.xls\',sheet1$);
需要注意的地方。
1)外围应用配置器的设置。
从“功能外围应用配置器”中选择“启动 OPENROWSET 和 OPENDATASOURCE 支持”选项。
2)关闭Excel表。
如果在导入时要导入的Excel表格处于打开状态,会提示:
“无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "microsoft.jet.oledb.4.0" 的数据源对象。”
3)导入数据时,Excel的首行会作为表头,若导入到已存在的数据库表,则忽略首行。
参考技术A 没有直接的方法。1、要操作Excel,首先需要引用Microsoft Office 11.0 Object Library2、包含using System.Runtime.InteropServices; // For COMExceptionusing Excel; 3.用该命名空间的类。操作Excel得到其中行列数据。得到数据后,存入SqlServer就行了。怎么操作Excel,我就不说了。网上多的是。Copy一下,根据自己的实际情况修改。 参考技术B if (FileUpload1.PostedFile != null)

string fileName = FileUpload1.PostedFile.FileName;
string kzm = System.IO.Path.GetExtension(fileName);
string newName = DateTime.Now.ToString("yyyyMMddHHmmss") + kzm;
string filePath = Server.MapPath("~") + "\\Download\\" + newName;
FileUpload1.PostedFile.SaveAs(filePath);

OleDbDataAdapter ada=new OleDbDataAdapter("SELECT * FROM [Sheet1$]", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0;");
DataTable dt = new DataTable();
try

ada.Fill(dt);

catch (Exception ex)


如何使用 c#asp.net 将数据库中的数据插入到表中?

【中文标题】如何使用 c#asp.net 将数据库中的数据插入到表中?【英文标题】:How to insert data from database into a table using c# asp.net? 【发布时间】:2021-08-15 15:01:27 【问题描述】:

我对 asp.net 和 c# 还很陌生,我已经连接到一个 SQL 数据库,现在我想将我拥有的数据显示到一个表中。

这是我的后端:

public string getWhileLoopData()

    string htmlStr = "";
    SqlConnection conn = new SqlConnection("Data Source = secret;Initial Catalog = GTI;Persist Security Info = True;Integrated Security = true;User ID = user;Password = pass;");
    conn.Open();
    SqlCommand cmd = new SqlCommand("SELECT * FROM [CORE_SYS_STATUS]", conn);
    SqlDataReader reader = cmd.ExecuteReader();

    while (reader.Read())
    
        int ID = reader.GetInt32(0);
        int SYSTEM_NAME = reader.GetInt32(0);
        int SYSTEM_STATUS = reader.GetInt32(0);
        int SYSTEM_SHORTMSG = reader.GetInt32(0);

        htmlStr += "<tr><td>" + ID + "<tr><td>" + SYSTEM_NAME + "<tr><td>" + SYSTEM_STATUS + "<tr><td>" + SYSTEM_SHORTMSG;
    

    conn.Close();
    return htmlStr;

这是我的前端:

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="ContentPlaceHolder">

    <div class="bg-light text-center bg-light rounded border border-dark m-4">

        <div class="col-md-12">
            <h1 class="display-4 text-center p-4">Gestão de Alertas</h1>

            <table class="table table-bordered table-hover text-center p-4 border border-dark">
                <thead>
                    <tr class="table-success disabled">
                        <th style="width: 5%" scope="col">ID</th>
                        <th style="width: 20%" scope="col">Nome</th>
                        <th style="width: 15%" scope="col">Status</th>
                        <th style="width: 45%" scope="col">Mensagem</th>
                    </tr>
                </thead>
                <tbody>
                   <!-- I want to insert data here -->
                </tbody>
            </table>
        </div>
    </div>
</asp:Content>

结果如下: Result

它可能看起来很傻很简单,但我对这个编程很陌生,如果有人能帮助我弄清楚如何将我的数据插入到表中,我会很高兴。谢谢!

【问题讨论】:

我不知道如何添加 HTML 节点,但我可以给你一些其他的思考:不要在代码中嵌入连接字符串,把它放在一个设置文件中。如果Integrated Security = true 则忽略用户名和密码。连接、命令和阅读器对象应位于using 块中。不要select *,如果不需要,请指定您需要的确切列。 【参考方案1】:

有很多方法可以实现这一点。

我建议查看有关 DataBinding 的文档,例如:

Retrieving data in aspnet web-forms

GridView DataBind(看那里的样本)

此外,您应该查看有关 GetInt32 的文档: GetInt32 MSDN

参数是 select 语句中列的索引,你总是传递 0,这肯定不是你想要的。我还建议在 select 语句中明确命名您想要的列,而不是使用 select *。

【讨论】:

【参考方案2】:

对于快速解决方案,您可以将 &lt;%=getWhileLoopData()%&gt; 替换为 &lt;asp:Literal /&gt; 控件;在您的代码隐藏中,将其 Text 属性设置为 (getWhileLoopData)。

如果您是 ASP.NET 新手,学习 WebForms 数据绑定将需要一段时间,因为它有一些规则和特性需要您掌握。老实说,除非你必须在 WebForms 中构建这个东西,否则你应该开始学习 ASP.NET MVC,WebForms 是一种死技术。

【讨论】:

【参考方案3】:
<% HtmlString str = new HtmlString(getWhileLoopData()); %>
<%= str %>

【讨论】:

你能解释一下你的方法吗?

以上是关于ASP.NET中如何将Excel表中的数据导入到数据库中?的主要内容,如果未能解决你的问题,请参考以下文章

如何在asp.net中实现将sqlserver数据库表的数据导入到excel中,希望在代码中生成Excel表并带有中文表头?

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

紧急求助!asp.net中如何将表中数据导出excel。重谢!!!!!

asp.net中,如何实现将page页面各个空间的属性值,导出下载到一个word或excel中

将 excel 表导入 ASP.NET C# MVC

如何将 Openoffice calc excel 连接到 sql server 而不是 asp.net 中的 oledb excel 连接