C# 在数据库中添加表运行时

C# 在数据库中添加表运行时,c#,C#,我有一个在运行时创建的datatable dt,现在我想将此datatable插入我的数据库,但在我的数据库中此表不存在。我只想将此表添加到我的database tables集合中。您可以通过向其发出正确的语句在数据库中创建该表 如果您创建一个命令来为您创建新表,那么您将能够填充它 例如: CREATE TABLE dbo.myNewTable id INT NOT NULL IDENTITY (1,1), text VARCHAR (50) NOT NULL 在不知道什么数据库以

我有一个在运行时创建的datatable dt,现在我想将此datatable插入我的数据库,但在我的数据库中此表不存在。我只想将此表添加到我的database tables集合中。

您可以通过向其发出正确的语句在数据库中创建该表

如果您创建一个命令来为您创建新表,那么您将能够填充它

例如:

CREATE TABLE dbo.myNewTable
   id INT NOT NULL IDENTITY (1,1),
   text VARCHAR (50) NOT NULL

在不知道什么数据库以及如何连接到它的情况下,很难给出更多细节。

您需要生成SQL脚本,该脚本将手动创建表。大概是这样的:

DataTably myTable = GetTable();
var sql = new StringBuilder();
sql.Append( "CREATE TABLE [").Append( myTable.TableName ).AppendLine( "] (");
foreach( DataColumn clm in myTable.Columns ) {
    sql.Append( "[" ).Append( clm.ColumnName ).Append( "] " );
    if ( clm.DataType == typeof( int ) ) { sql.Append( "int" ); }
    else if ( clm.DataType == ... ) { ... }

    ...
}
sql.Append( ")" );

我知道这种方法,但我不想这样做我想在数据库中用我的DataTable结构自动插入/创建一个表,而无需编写Create命令是否可行?否,ADO.NET没有自动方法,如何实现。我有连接字符串,但数据库中没有DataTable dt结构的表