各位大侠好,现在我用C#开发winform程序,已经做出两个按钮功能,第一个读取excel到datagridview,第二个将datagridview里数据插入数据库表B。 现在我想在想在之间加一个匹配操作。因为录入的excel不是完整信息,我需要去数据库中通过excel中的某些信息匹配完整的所有的信息,然后再次显示到datagridview上。然后再插入数据库。 [code=csharp private void btnSelect_Click_1(object sender, EventArgs e)
        #region 获取excel方法一  这部分我是先绑定到datagridview,然后再获取excel 的值。
        {
            System.Windows.Forms.OpenFileDialog fd = new OpenFileDialog();
            if (fd.ShowDialog() == DialogResult.OK)
            {
                    string fileName = fd.FileName;
                    bind(fileName);
             
            }
        }
        private void bind(string fileName)
        {
            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                 "Data Source=" + fileName + ";" +
                 "Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'";
            OleDbDataAdapter da = new OleDbDataAdapter("SELECT *  FROM [Sheet1$]", strConn);
            DataSet ds = new DataSet();            try
            {
                da.Fill(ds);
                dt = ds.Tables[0];
                this.dataGridView1.DataSource = dt;
            }
            catch (Exception err)
            {
                MessageBox.Show("操作失败!" + err.ToString());
            }
        }
        #endregion
][/code]这步是将datagridview中数据插入数据库。 求中间匹配的方法
 private void btnOk_Click_1(object sender, EventArgs e)  //插入数据库
        {
            
              if (dataGridView1.Rows.Count > 0)
                 {
                     DataRow dr = null;                             for (int i = 0; i < dt.Rows.Count; i++)
                                   {
                                            dr = dt.Rows[i];
                                            insertToSql(dr);                   
                                    }
                 }数据库ExcelDataGridView

解决方案 »

  1.   

    我觉得你的逻辑有问题;
    是否应该是先将所有EXCEL数据 导入到一张临时表A
    然后用这个A表,与你B表做查询匹配后,得到的结果集展现呢????用户在修改完你展现的数据库后,你整体把表格里的数据 打包成一个XML文件
    一次提交给数据库的存储过程,在存储过程内部实现具体的保存方法(没有的插入,已有的修改)不是更好?
      

  2.   

    定义2个DataTable,一个存放读取数据库的数据,一个存放读取excel的数据,
    将这两个DataTable 进行对比分析。