C# 从DataTable创建数据库架构

C# 从DataTable创建数据库架构,c#,.net,ado.net,C#,.net,Ado.net,是否可以不编写任何SQL或使用任何第三方库从几个ADO.NETDataTables创建数据库架构?为您编写SQL的函数很容易。但是,如果您根本不想使用SQL,我会认为您运气不好: private string GetSqlCommand(Dictionary<string, Type> schema, string tableName, bool includeIdentity) { string sql = "CREATE TABLE [" + ta

是否可以不编写任何SQL或使用任何第三方库从几个ADO.NET
DataTable
s创建数据库架构?

为您编写SQL的函数很容易。但是,如果您根本不想使用SQL,我会认为您运气不好:

    private string GetSqlCommand(Dictionary<string, Type> schema, string tableName, bool includeIdentity)
    {
        string sql = "CREATE TABLE [" + tableName + "] (\n";

        if (includeIdentity)
            sql += "[ID] int not null Identity(1,1) primary key,\n";

        foreach (KeyValuePair<string, Type> info in schema)
        {
            sql += "[" + info.Key + "] " + SQLGetType(info.Value) + ",\n";
        }

        sql = sql.TrimEnd(new char[] { ',', '\n' }) + "\n";

        return sql + ")";
    }
私有字符串GetSqlCommand(字典模式、字符串表名、bool includeIdentity)
{
string sql=“创建表[“+tableName+”](\n”;
如果(包括身份)
sql+=“[ID]int非空标识(1,1)主键,\n”;
foreach(模式中的KeyValuePair信息)
{
sql+=“[”+info.Key+“]”+SQLGetType(info.Value)+“,\n”;
}
sql=sql.TrimEnd(新字符[]{',','\n'})+“\n”;
返回sql+”;
}
不确定这是不是“非sql”,但您可以使用。

这是代码

SqlConnection con = connection string;
        con.Open();
        string sql = "Create Table abcd (";
        foreach (DataColumn column in dt.Columns)
        {
            sql += "[" + column.ColumnName + "] " + "nvarchar(50)" + ",";
        }
        sql = sql.TrimEnd(new char[] { ',' }) + ")";
        SqlCommand cmd = new SqlCommand(sql, con);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        cmd.ExecuteNonQuery();
con.close();

我给出了一个预定义的表名abcd。

最终您将不得不执行CREATETABLE语句,您不这样认为吗?当然,您可以使用DataTable中的元数据创建一个封装流程的类。我不想编写任何SQL。您希望如何创建任何表?我认为基本上你的问题应该是--“.NET Framework是否具有从DataTable自动创建sql表的功能?”据我所知,答案是否定的。