`

DataTable数据集录入到数据库表

    博客分类:
  • C#
 
阅读更多
   此方法在自己最近写的这个程序中经常用到,感觉非常好用。尤其是将TreeView、Menu等,保存到数据库相对的表中时。将些记录下来,以供大家参考。
 
            /// DataTable记录集导入到数据库表
            /// </summary>
            /// <param name="connString">数据库联结串</param>
            /// <param name="SouseDataTable">要导入的数据DataTable</param>
            /// <param name="DestTableName">目的表名</param>
            /// <param name="IsAppendRow">是否追加记录</param>
            /// <returns></returns>
            public static bool DataTableInputDataBase(string connString, DataTable SouseDataTable, string DestTableName, bool IsAppendRow)
            {
                if (SouseDataTable.Rows.Count > 0)
                {
                    if (IsAppendRow == false)
                    {
                        HR.AuditSystem.DBUtility.DbHelperSQL.ExecuteSql("delete from " + DestTableName);
                    }
                    SqlConnection SqlCnn = new SqlConnection(connString);
                    SqlCnn.Open();
                    DataTable NewTable = OrdinalTable(connString, SouseDataTable, DestTableName);
                    SqlBulkCopy Bcp = new SqlBulkCopy(SqlCnn);
                    Bcp.DestinationTableName = DestTableName;
                    Bcp.WriteToServer(NewTable);
                    Bcp.Close();
                    SqlCnn.Close();
                }
                SouseDataTable.Reset();
                SouseDataTable.Dispose();
                return true;
            }

            /// <summary>
            /// 调整表字段顺序
            /// </summary>
            /// <param name="SqlConnstring">数据库联结串</param>
            /// <param name="DTS">源DataTable</param>
            /// <param name="DestTableName">目标表名</param>
            /// <returns></returns>
            private static DataTable OrdinalTable(string SqlConnstring, DataTable DTS, string DestTableName)
            {
                System.Data.SqlClient.SqlConnection SqldbCnn = new System.Data.SqlClient.SqlConnection(SqlConnstring);
                DataTable DTD = new DataTable();
                System.Data.SqlClient.SqlDataAdapter SqlDbDA = new System.Data.SqlClient.SqlDataAdapter("select top 1 * from " + DestTableName, SqldbCnn);
                SqldbCnn.Open();
                SqlDbDA.Fill(DTD);
                SqlDbDA.Dispose();
                SqldbCnn.Close();
                DTD.Clear();
                int I = 0;
                int J = 0;
                string CNS = "";
                string CND = "";
                int MaxCol = 0;
                for (I = 0; I < DTS.Columns.Count; I++)
                {
                    CNS = DTS.Columns[I].ColumnName;
                    for (J = 0; J <= DTD.Columns.Count - 1; J++)
                    {
                        CND = DTD.Columns[J].ColumnName;
                        if (CND.ToUpper() == CNS.ToUpper())
                        {
                            if (MaxCol < J)
                            {
                                MaxCol = J;
                                break;
                            }
                        }
                    }
                }
                for (J = 0; J <= MaxCol; J++)
                {
                    if (DTS.Columns.IndexOf(DTD.Columns[J].ColumnName) < 0)
                    {
                        DTS.Columns.Add(DTD.Columns[J].ColumnName.ToUpper(), DTD.Columns[J].DataType);
                    }
                }

                for (I = 0; I <= DTD.Columns.Count - 1; I++)
                {
                    CND = DTD.Columns[I].ColumnName;
                    for (J = 0; J <= DTS.Columns.Count - 1; J++)
                    {
                        CNS = DTS.Columns[J].ColumnName;
                        if (CNS.ToUpper() == CND.ToUpper())
                        {
                            DTS.Columns[J].SetOrdinal(I);
                            break;
                        }
                    }
                }
                return DTS;
            }
分享到:
评论

相关推荐

    access+vb.net读写图片到数据库

    这对于检索图片数据非常有用,因为可以在程序中直接处理数据集,无需保持数据库连接。 8. **图片控件显示**: 在VB.NET界面中展示图片,可以使用`PictureBox`控件。读取数据库中的图片后,将字节数组转换为`Image`...

    c#数据录入,自动生产线状,柱状分布图

    对于复杂的数据操作,可以使用LINQ(Language Integrated Query),它允许开发者使用类似SQL的语法在内存中的数据集上进行查询。 3. **图表绘制**:C#的数据可视化通常依赖于第三方库,如 Microsoft Chart Controls...

    数据库课程设计-学生管理组织系统.zip_数据库 CSharp_数据库 课程设计

    - 数据填充:使用SqlDataAdapter和DataSet/Datatable将数据库结果集加载到内存中。 -事务处理:在多步骤操作中,可以使用Transaction确保数据的一致性。 5. **课程设计过程**: - 需求分析:明确系统的目标,如...

    Visual Basic.NET数据库编程从入门到精通

    DataSet是一个内存中的数据集,可以存储和操作多表数据,而DataAdapter则负责在数据库和DataSet之间同步数据。 学习VB.NET数据库编程,你需要掌握以下几个关键概念: 1. 数据连接:使用SqlConnection类创建到...

    c# 数据库 图书管理系统

    它通过 SqlConnection 连接数据库,SqlCommand 执行SQL语句,SqlDataReader 读取结果集,SqlDataAdapter 和 DataTable 用于填充和操作数据集。在图书管理系统中,可能会涉及到添加新图书、查询图书信息、更新图书...

    C#语言数据库—学生管理系统

    ADO.NET提供了一组组件,如Connection(连接)、Command(命令)、DataAdapter(数据适配器)和DataSet(数据集),这些组件使得C#与数据库的交互变得简单且高效。 在这个学生管理系统中,"增"功能指的是添加新的...

    C#+access数据库开发 学生学籍管理系统

    8. 安全性:考虑到数据库的安全性,可以设置数据库的访问权限,限制不同用户对数据的操作范围。 通过以上步骤,我们可以创建一个基本的学生学籍管理系统,实现学生信息的录入、查询、修改、删除等核心功能。随着...

    .net动态添加行

    这种方式提高了交互性,因为它允许用户在提交之前查看并修改整个数据集。 具体实现步骤可能包括: 1. 创建一个空的DATATABLE,定义列名以匹配数据库表结构。 2. 在前端HTML代码中,设置一个表格,其行可以通过...

    C# 学生管理系统 数据库齐全

    ADO.NET提供了一套全面的数据访问组件,如DataSet、DataTable、DataRow等,可以方便地连接数据库、执行SQL语句、填充数据集、更新数据库等。 六、用户界面设计 在VS2005中,可以使用Windows Forms或WPF来设计用户...

    薪酬管理系统(.NET平台下数据库编程)

    开发过程中,会运用到.NET的窗体应用程序(Windows Forms)来构建用户界面,提供数据录入、查询、修改和报表打印等功能。控件如TextBox、ComboBox、DataGridView等被用来展示和编辑数据,而Button、MenuStrip等则...

    C#学员管理系统 数据库

    通过DataTable、DataAdapter等对象,可以方便地在代码中操作数据库数据。 六、异常处理与日志记录 为了提高系统的健壮性,学员管理系统应包含完善的异常处理机制,如try-catch-finally结构,以捕获并处理可能出现...

    C#工资管理系统(数据库课程设计-含报告)

    ADO.NET是一组数据访问组件,它提供了一种面向对象的方式来操作数据库,包括数据集(DataSet)、数据表(DataTable)、数据适配器(DataAdapter)等核心类。在本项目中,开发者可能通过创建数据库连接,使用SQL语句...

    vb.net 小型新闻录入系统

    4. **数据适配器和数据集**:`SqlDataAdapter`用于在数据库和内存中的`DataSet`或`DataTable`之间传输数据,实现数据的填充和更新。 5. **数据绑定**:将数据库中的数据绑定到控件,如`DataGridView`,展示新闻列表...

    dev的LookUpEdit支持自由录入

    5. **数据绑定**:LookUpEdit支持多种数据绑定方式,如DataSource和DataMember属性,可以将控件与数据源(如DataTable、Entity Framework实体集等)绑定,实现数据的双向同步。 6. **编辑模板**:通过`EditForm`和`...

    C#348-学生管理系统C#+数据库源代码

    2. ADO.NET:C#通过ADO.NET库与数据库进行交互,它提供了DataSet、DataTable、DataAdapter等组件,用于执行SQL语句、填充数据集和更新数据库。 3. ORM框架:为了简化数据库操作,开发者可能会选择使用ORM(对象关系...

    DBClass.zip_ACCESS数据库_access 查询

    此外,还可能有用于处理数据的辅助函数,如FillDataTable()将查询结果填充到DataTable对象。 总之,Access数据库提供了一套全面的工具,便于管理和操作数据。在编程环境中,如C#,我们可以通过ADO.NET库与Access...

    Cdatabase.rar_C#数据库_CDatabase_c# 实例_visual c

    ADO.NET是.NET框架的一部分,它提供了一组组件,用于创建与数据库的连接、执行SQL命令以及填充数据集。关键组件包括SqlConnection、SqlCommand、SqlDataReader、DataSet和DataTable等。 3. **创建数据库**: "Data ...

    VB.NET与数据库教程-PDG文件

    本教程的"PDG文件"可能包含详细的章节,如建立数据库连接、创建数据适配器、使用数据集填充控件、执行CRUD操作(创建、读取、更新、删除)、事务处理、错误处理等。阅读工具将帮助用户更方便地浏览和学习这些内容。 ...

    订单管理系统-利用DataGridView控件访问 数据库

    3. **执行查询**:使用`SqlCommand`对象执行查询,并将结果集保存到`SqlDataReader`中。 ```csharp SqlCommand command = new SqlCommand(query, connection); connection.Open(); SqlDataReader reader = ...

    Visual Basic .NET数据库开发案例——医院管理系统

    在医院管理系统中,开发者可以使用ADO.NET来创建数据库连接、执行SQL语句、填充数据集,从而与数据库进行交互。 4. **设计数据库模型** 在医院管理系统中,我们需要设计符合业务逻辑的数据库表结构。例如,可以...

Global site tag (gtag.js) - Google Analytics