我在SQL数据库中有四个coloum表。前三个列的信息由另一个来源提供。默认情况下,coloum 4设置为null。
然后,我获得了一个带有数据表的胜利表格,该数据表使用以下代码填充了来自sql tabase的信息:
public DataTable populateFormList() { SqlConnection con = new SqlConnection(Properties.Settings.Default.sqlConnectionString); SqlCommand cmd = new SqlCommand("SELECT * FROM of_formlist_raw", con); con.Open(); SqlDataReader reader = cmd.ExecuteReader(); DataTable dt = new DataTable(); dt.Load(reader); return dt; } datagridview2.DataSource = populateFormList(); datagridview2.Refresh();
现在,可以很好地获取我的数据。
然后,用户可以更改第4列中的空值。
我如何轻松地将这些更改从数据表写回到SQL表中?
换句话说,一旦屏幕上的数据表具有附加值,我该如何将更新后的信息存储回最初从中获取更新信息的SQL数据中?
谢谢。
尝试这样的事情,然后将其(DataTable)datagridview2.DataSource作为数据表传递:
(DataTable)datagridview2.DataSource
private static void BulkInsertToSQL(DataTable dt, string tableName) { using (SqlConnection con = new SqlConnection(_DB)) { SqlBulkCopy sbc = new SqlBulkCopy(con); sbc.DestinationTableName = tableName; //if your DB col names don鈥檛 match your data table column names 100% //then relate the source data table column names with the destination DB cols sbc.ColumnMappings.Add("DBAttributeName1", "DTColumnName1"); sbc.ColumnMappings.Add("DBAttributeName2", "DTColumnName2"); sbc.ColumnMappings.Add("DBAttributeName3", "DTColumnName3"); sbc.ColumnMappings.Add("DBAttributeName4", "DTColumnName4"); con.Open(); sbc.WriteToServer(dt); con.Close(); } }