C# 从数据表添加列名

C# 从数据表添加列名,c#,mysql,C#,Mysql,所以我有一段代码,可以将数据表上传到数据库表 public bool TableCreator(DataTable dt, string tableName) { using (SqlConnection con = new SqlConnection(connectionString)) { try { /*#### Method needs to include adding apropreate amount of

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

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相同的列数


我已经尝试了一些方法,但我只是缺乏这样做的知识。

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

因此,我想您应该知道的第一件事是如何在存储列的上下文中定义。快速查看文档会发现您有一处房产。在该页面中,您可以看到一个示例,说明如何迭代数据表中的每一列

第二个问题是如何创建一个SQL命令来创建一个包含列的表(您似乎已经了解了这些列的基本知识)


因此,只需构建一个包含所有列定义的colunmHeader字符串。您甚至可以使用该文档示例作为构建所述字符串的小指南,这样您的columnHeader将类似于“(TestColunmHeader varchar(50)、TestColunmHeader1 varchar(50)、TestColunmHeader2 varchar(50))”等等,它是基于我需要的应用程序中的数据表在sql数据表中创建列名。这就是它被否决的原因吗?它能被构建成一种动态的吗?它将从一个数据表变为另一个数据表它肯定可以被构建,这样它将动态创建不同列大小的不同sql数据表,因为对于您的函数“TableCreator(DataTable dt,string tableName)”,您提供给函数的每个dt和tableName都是定义良好且唯一的。啊,太酷了,那么,我把这个作为正确答案。非常感谢。