如何将具有默认值的行添加到System.Data.DataTable中

时间:2015-10-10 05:19:21

标签: c# datatable system.data

我有DataTable,我需要添加row默认值并将其保存到数据库中。

BONUS:自动增加键列会很棒。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

static int i = 1;
private void CreateDefault()
{
    DataColumn column = null;
    DataTable table = new DataTable();

    column = new DataColumn();
    var Col1 = column;
    Col1.DataType = System.Type.GetType("System.Int32");
    Col1.DefaultValue = i;
    Col1.Unique = false;
    table.Columns.Add(column);
    i = i + 1;

    column = new DataColumn();
    var Col2 = column;
    Col2.DataType = System.Type.GetType("System.String");
    Col2.DefaultValue = "Your String";
    table.Columns.Add(column);

    DataRow row = null;
    row = table.NewRow();

    table.Rows.Add(row);
}

变量i将是自动增量键列。现在将DataTable插入DataBase

答案 1 :(得分:-1)

您可以使用默认值添加新行,并将其保存到数据库中。

using (var conn = new SqlConnection(connectionString))
{
    SqlCommand cmd = new SqlCommand("SELECT * FROM YourTableName", conn);
    SqlDataAdapter da = new SqlDataAdapter() { SelectCommand = cmd };

    // Load records to a DataSet
    DataSet ds = new DataSet();
    da.Fill(ds, "YourTableName");
    var table = ds.Tables["YourTableName"];

    // Add a new row with default value
    table.Rows.Add();

    // Reflect the change to database
    SqlCommandBuilder cb = new SqlCommandBuilder(da);
    da.Update(ds, "YourTableName");
}

此外,如果您为MS SQL Server(https://msdn.microsoft.com/en-us/library/ms186775.aspx)设置了IDENTITY之类的自动增量键,则在插入新行时这将起作用。