【问题标题】:Send datatable data to mysql database C# Form将datatable数据发送到mysql数据库C#表单
【发布时间】:2021-08-21 07:09:16
【问题描述】:

文件 a.csv
aaa,bbb,,ddd
aba,bab,,dcd

文件 b.txt
bbb,ccc
bab,cbc

匹配
aaa,bbb,ccc,ddd
aba,bab,cbc,dcd

大家好,通过参考上面的文本,我有一项任务涉及从逗号分隔的 csv 文件中读取,并将列与文本文件匹配,并将匹配的数据保存在数据表中。我有一个执行所有匹配部分的类。但是我还没有找到将所有数据表数据插入mysql数据库的解决方案。我试图将数据表查询到数据库中,但没有成功。谢谢。

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 那么,您问题的任何“csv 和匹配文本”部分是否相关,或者您的问题仅仅是“我想将数据表的内容上传到 MySQL”?
  • @Matthias 我试图进行查询,但找不到将数据表中每一列的数据插入数据库每一列的方法
  • @CaiusJard 我很抱歉。是的,我认为就是这样。我需要将数据表中匹配的数据插入到mysql中。
  • 数据表列名和数据库列名一样吗?

标签: c# mysql datatable


【解决方案1】:

您甚至不需要编写查询。它应该像这样工作:

var dataSet = new DataSet();
dataSet.Tables.Add(YOUR_DATA_TABLE);

using (var connection = new MySqlConnection(connectionString))
{
    var adapter = new MySqlDataAdapter ();
    adapter.SelectCommand = new MySqlCommand("SELECT * FROM YOUR_DB_TABLE", connection);
    var builder = new MySqlCommandBuilder(adapter);

    
    adapter.InsertCommand = builder.GetInsertCommand();
    adapter.Update(dataSet); //i know it says "update, but it runs INSERT/UPDATE/DELETE query depending on the RowState
}

数据表中的行必须具有已添加的 RowState,如果它们已通过 datatable.Rows.Add(...) 添加并且您尚未在表上调用 AcceptChanges,则它们将具有该行状态。如果您的行未在声明中添加,则必须在每个未添加的行上调用 SetAdded

【讨论】:

  • 谢谢!我会尽快回来的。
猜你喜欢
  • 2011-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-20
  • 2017-01-05
  • 2020-05-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多