Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#将datagridview数据写入SQL表_C#_Sql_Datagridview - Fatal编程技术网

C#将datagridview数据写入SQL表

C#将datagridview数据写入SQL表,c#,sql,datagridview,C#,Sql,Datagridview,我在SQL数据库中有一个四列表。前三列的信息由另一来源提供。默认情况下,冒号4设置为null 然后,我有一个win表单,其中包含一个datatable,使用以下代码填充sql选项卡中的信息: public DataTable populateFormList() { SqlConnection con = new SqlConnection(Properties.Settings.Default.sqlConnectionString);

我在SQL数据库中有一个四列表。前三列的信息由另一来源提供。默认情况下,冒号4设置为null

然后,我有一个win表单,其中包含一个datatable,使用以下代码填充sql选项卡中的信息:

    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列中的空值

如何轻松地将这些更改从datatable写回SQL表

换句话说,一旦屏幕上的datatable具有传统值,我如何将更新后的信息存储回最初从中获取信息的SQL数据中


谢谢。

2个选项,带或不带TableAdapter

我建议您使用TableAdapter

他们也在使用BindingSources,它们是优秀的组件,易于使用


如果没有TableAdapter,“使用命令对象更新记录”部分。

尝试类似的操作,只需将
(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’t 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();
                }


        }

将数据库返回sql表是什么意思?(关闭连接,使用后关闭读卡器)第四个冒号已经如前所述存在,因此我可以只使用表atapater,它应该将数据表信息写回sql数据库?