小编典典

C#将datagridview数据写入SQL表

sql

我在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数据中?

谢谢。


阅读 229

收藏
2021-04-14

共1个答案

小编典典

尝试这样的事情,然后将其(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();
                }


        }
2021-04-14