从DataTable创建数据库模式

时间:2011-07-11 23:17:55

标签: c# .net ado.net

是否可以在不编写任何SQL或使用任何第三方库的情况下从多个ADO.NET DataTable创建数据库模式?

3 个答案:

答案 0 :(得分:2)

不确定“不是sql”,但您可以使用SQL Server Management Objects

答案 1 :(得分:0)

很容易创建一个为您编写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 + ")";
    }

答案 2 :(得分:0)

这是代码

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。