2015-10-10 5 views
-1

У меня есть DataTable, и мне нужно добавить row со значениями по умолчанию и сохранить их в базе данных.Как добавить строку со значениями по умолчанию в System.Data.DataTable

БОНУС: Было бы замечательно, чтобы колонка с автоматическим приращением.

Как я могу это достичь?

+0

Посмотрите на этот документ из MSDN: https://msdn.microsoft.com/en-us/library/system.data.datacolumn.defaultvalue(v=vs.110).aspx - но вы должны подумать об этом уровень базы данных (если вы используете базу данных), по крайней мере, для ключа автоматического инкремента. –

ответ

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

Вы можете добавить новую строку со значениями по умолчанию и сохранить ее в базе данных следующим образом.

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"); 
} 

Кроме того, если вы установили ключ автоматического инкремента как IDENTITY для MS SQL Server (https://msdn.microsoft.com/en-us/library/ms186775.aspx), это работает, когда вставляется новая строка.

+0

Не работает ..... База данных не обновляется вообще ... – Farukh

+0

Не могли бы вы показать ваше соединениеString (кроме пароля и т. Д.) И назвать все столбцы своими значениями по умолчанию? Я хотел бы выяснить, почему это не работает в вашей базе данных. – jhmt