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();
如果不起作用请告诉我
我在我的程序中遇到了将数据从 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();
如果不起作用请告诉我