如何从datagridview /数据集中导出数据?

火锅

新成员
已加入
2016年4月19日
留言内容
1
编程经验
1-3
嘿,

因此,目前我可以将excel文件导入到我的C#应用​​程序中,并在datagridview中查看它,接下来,我将数据重新排列为17个不同的标题,并在另一个datagridview中显示了它,现在我正尝试将其导入到Access数据库中,尽管我没有收到任何错误,但Access数据库没有更新,并且我完全陷入了困境:

我的以下代码用于更新访问数据库:

tblEquipmentTableAdapter.Update(sQTDBDataSet);



我的整个项目代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;

namespace Application
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void label2_Click(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            foreach (DataRow r in dsEquipment.Tables[0].Rows)
            {
                DataRow dr = sQTDBDataSet.tblEquipment.NewRow();
                dr[0] = r[0];
                dr[1] = r[1];
                dr[2] = r[2];
                dr[3] = r[3];
                dr[4] = r[4];
                dr[5] = r[5];
                dr[6] = r[6];
                dr[7] = r[7];
                dr[8] = r[8];
                dr[9] = r[9];
                dr[10] = r[10];
                dr[11] = r[11];
                dr[12] = r[12];
                dr[13] = r[13];
                dr[14] = r[14];
                dr[15] = r[15];
                dr[16] = r[16];

                sQTDBDataSet.tblEquipment.Rows.Add(dr);
            }
            tblEquipmentTableAdapter.Update(sQTDBDataSet);
            //tblEquipmentTableAdapter.Update(SQTDBDataSet);
        }

        private void btnReadExcel_Click(object sender, EventArgs e)
        {
            // Establish connection between the c# application and the excel file.
            OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Ace.OLEDB.12.0;Data Source="+txtFileName.Text+";Extended Properties=Excel 12.0");
            // Reading the data from the excel file.
            OleDbDataAdapter da = new OleDbDataAdapter("select * from [Equipment$]", con);
            // All data from the file will be loaded into the dataset.
            da.Fill(dsEquipment);
            // Show in a message box how many rows of data there is. 
            //MessageBox.Show(dsEquipment.Tables[0].Rows.Count.ToString());
            // Show the data in the data grid view.
            dgEquipment.DataSource = dsEquipment.Tables[0];
        }

        private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void tblEquipmentBindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
            this.Validate();
            this.tblEquipmentBindingSource.EndEdit();
            this.tableAdapterManager.UpdateAll(this.sQTDBDataSet);

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'sQTDBDataSet.tblEquipment' table. You can move, or remove it, as needed.
            this.tblEquipmentTableAdapter.Fill(this.sQTDBDataSet.tblEquipment);

        }
    }
}


任何帮助深表感谢。
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,525
地点
悉尼,澳大利亚
编程经验
10+
您在表适配器上调用的那个Update方法返回一个数字,在您的情况下,该数字表示插入数据库中的记录数。拨打电话时,只有三种可能的结果:

1.调用失败,并引发异常。
2.调用成功并返回零,这意味着没有要保存的更改。
3.调用成功,并返回非零值,这意味着已进行更改并保存了它们。

您是哪种情况?我怀疑它是3,这意味着一切都按预期进行,而您只是没有在正确的位置寻找数据。这是一个非常普遍的问题。在这种情况下,建议您点击下面我签名中的第一个链接,以了解如何管理本地数据文件。
 
最佳 底部