从datagridview写入/更新本地数据库



我有一个问题,要将数据从datagridview插入本地数据库,在我的程序中,我将csv/excel文件数据上传到datagridview并显示给用户。

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

所以我的问题是:

1.如何将数据从datagridview正确插入到本地数据库。

2.如果它已经存在,我不想插入它,如何插入?

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

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容器中,然后在最后将其保存到本地机器中。

如果你喜欢这种方法,请告诉我,所以我提供了一些代码

请按照以下步骤操作:1) 您只需要加载csv/excel一次,并确保选中datagridview的更新复选框,然后将其保存为XML2) 以XML格式保存,使用"编写XML代码"3) 使用读取XML代码再次加载4) 更新任何字段中的任何数据,然后使用(编写XML代码)保存

//读取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);

//在文本框中显示XML

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

如果它不起作用,请告诉我

相关内容

  • 没有找到相关文章

最新更新