【问题标题】:Adding column names from a data table从数据表中添加列名
【发布时间】:2016-12-24 01:08:33
【问题描述】:

所以我有这段代码可以将数据表上传到数据库表。

public bool TableCreator(DataTable dt, string tableName)
{
    using (SqlConnection con = new SqlConnection(connectionString))
    {
        try
        {
            /*####  Method needs to include adding apropreate amount of colunm headers  ####*/
            string colunmHeader = " (TestColunmHeader varchar(50));";
            //Opens connection to the DataBase
            con.Open();
            //Creates a new Table in the Database
            using (SqlCommand command = new SqlCommand("CREATE TABLE " + tableName + colunmHeader, con))
                command.ExecuteNonQuery();
            UploadConnection(dt, tableName);
            return true;
        }
        catch (Exception)
        {
            return false;
        }
    }
}

如果我“硬编码”列名和数量,这很有效,但我需要在数据库中创建的新表具有与 dataTable 相同的列数。

我已经尝试了一些事情,但我只是缺乏执行此操作的知识。

【问题讨论】:

标签: c# mysql


【解决方案1】:

如果我理解正确,您要做的就是在 sql 数据库中创建一个表,其中包含由 DataTable 给出的 X 数量的列。

所以我想你应该知道的第一件事是DataTables 在它如何存储列的上下文中是如何定义的。快速浏览一下文档会发现您有一个column 属性。在该页面中,您可以看到如何遍历 DataTable 中的每一列的示例。

第二个是了解如何创建 SQL 命令来创建包含列的表(您似乎了解它的基础知识)。

因此,只需构建一个 colunmHeader 字符串,其中包含每列的所有定义。您甚至可以将该文档示例用作构建所述字符串的小指南,这样您的 columnHeader 将看起来像“(TestColunmHeader varchar(50),TestColunmHeader1 varchar(50),TestColunmHeader2 varchar(50))”等等。

【讨论】:

  • 这可以被构建成动态的吗?它将从数据表更改为数据表
  • 绝对可以构建它,以便动态创建不同列大小的不同 sql 数据表,因为对于您的函数“TableCreator(DataTable dt, string tableName)”,您提供给您的每个 dt 和 tableName功能定义明确且独一无二。
  • 啊酷,那么我就把这个作为正确答案。谢谢
猜你喜欢
  • 1970-01-01
  • 2014-12-27
  • 2017-08-29
  • 1970-01-01
  • 2019-02-24
  • 1970-01-01
  • 1970-01-01
  • 2014-05-17
  • 1970-01-01
相关资源
最近更新 更多