write/update 来自 datagridview 的本地数据库

write/update local data base from datagridview

我在我的程序中遇到了将数据从 datagridview 插入本地数据库的问题 - 我正在从 csv/excel 文件数据上传到 datagridview 并将其显示给用户。

我的程序中有 3 个 localDB,它们通过外键和主键相互连接,我想将 datagridview 中的一些列插入到我的 localDB 中,如果该数据已经存在于我的 localDB 中,请不要插入它。

所以我的问题是:

1.how 我可以将数据从 datagridview 正确地插入到我的 localDB 中吗?

2.if已经存在了,我不想插入,怎么办?

这是我上传文件以显示在数据网格视图中的代码:

 private void upload_to_datagridview(object sender, EventArgs e)
    {
        try
        {
            string Pathconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=\"Excel 8.0;HDR=Yes;\";";
            OleDbConnection conn = new OleDbConnection(Pathconn);
            OleDbDataAdapter myDataAdaptor = new OleDbDataAdapter("Select * from [" + SheetName + "$]", conn);
            System.Data.DataTable dt = new System.Data.DataTable();
            myDataAdaptor.Fill(dt);
            dataGridView1.DataSource = dt;
        }

        catch(Exception)
        {
            MessageBox.Show("no workbook was uploaded please upload again!");
            wb.Close(false);
            excel.Quit();
        }

        wb.Close(false);
        excel.Quit();
    }

我看过一些将数据从 datagridview 更新到 localDB 的代码,但它是整个 datagridview,所有列,我想从 datagridview 中获取特定列并更新 dataDB 中的特定列。

请有人向我解释如何正确地做,因为我找不到任何东西。

谢谢!

我将为您的案例提供替代解决方案,它可能会有所帮助并改变您的想法,以不同的方式思考。解决方案是加载和保存 XML 而不是 csv/Excel 。您只能将数据加载到 Datagrid 一次,然后将其保存 XML 。然后你现在有了 XML 数据,你可以加载和操作到 Datagrid 容器中,然后最后将它保存到你的本地机器中。

如果您喜欢这种方法,请告诉我,我会提供一些代码

Please follow the steps :
1) You need load csv/excel one time only and make sure to check update check box for datagridview , then you save it in XML 
2) Save it in XML format , use Write XML Code
3) Load it again by using Read XML Code
4) Update any data in any field then save it by using (Write XML Code)

//读取XML

DataSet ds1 = new DataSet();
ds1.ReadXml("d:/mahdi.xml");
dataGridView1.DataSource = ds1;
dataGridView1.DataMember = "tlbName";

//写入XML

 DataSet ds2 = new DataSet();
    dataGridView1.DataSource = ds2;
    XmlTextWriter newXml = new XmlTextWriter("d:/mahdi.xml", Encoding.UTF8);
    ds2.WriteXml(newXml);

//在TextBox

中显示XML
 DataSet ds3 = new DataSet();
    StringWriter swXML = new System.IO.StringWriter();
    ds3.WriteXmlSchema(swXML);
    textBox1.Text = swXML.ToString();

如果不起作用请告诉我