前辈们,求传授!    问:我用C#开发的一个应用程序,主要模式是 EXCEL导入至DataGirdView中,再后台读入至SQL中,我目前是先维护SQL表的字段与导入的EXCEL列字段是对应的数量。  但,问题来了,我想在SQL中将所有可能会导入的字段(所有的)信息维护进去,EXCEL的字段只需在对应的字段(其中部分)中找到信息存储进去。
public void ExcelToDataGridView(string filePath, DataGridView dgv)
        {
            /*我的思路是,从excel中把所有的行都到,excel中第一样是字段的value,第二行是字段的name
               然后通过程序生成dataGridView1的列,而不是你原来的是在dataGridView1中写死的列这样的
              话就是以excel中的列数为准,就不会出现索引超出范围的错误
            */
            DataSet ds = Exceldq(filePath);
            DataTable dt = new DataTable();
            //这个就是通过excel的第一行和第二行生成  datatable 的列
            for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
            {
                DataColumn dc = new DataColumn();
                dc.DefaultValue = ds.Tables[0].Rows[0][i].ToString();
                dc.ColumnName = ds.Tables[0].Rows[1][i].ToString();
                dt.Columns.Add(dc);
            }
            //删除几行就复制几个下面的语句
            ds.Tables[0].Rows.Remove(ds.Tables[0].Rows[0]);//删除第一行
            ds.Tables[0].Rows.Remove(ds.Tables[0].Rows[0]);//珊瑚第二行            foreach (DataRow excelRow in ds.Tables[0].Rows)
            {
                int i = 0;
                DataRow dr = dt.NewRow();
                foreach (DataColumn dc in dt.Columns)
                {
                    dr[dc] = excelRow[i];
                    i++;
                }
                dt.Rows.Add(dr);
            }
            zhu.DataSource = dt;
            //利用循环语句,根据输入的EXCEL信息,逐行录入数据库
            DataTable table = (DataTable)zhu.DataSource;            for (int i = 0; i < table.Rows.Count; i++)
            {
                //数据库中维护的表名与字段名
                string sql = "insert into zhu(BSM,SJDM,SJ,XJDM,X,XZDM,XZ,FZ,YJQMC,EJQMC,SJQMC) values";
                string sqlvalue = "";
                for (int j = 0; j < table.Columns.Count; j++)
                {                    string aa = table.Rows[i][j].ToString();
                    if (sqlvalue.Equals(""))
                    {
                        sqlvalue = "'" + aa + "'";
                    }
                    else
                    {
                        sqlvalue += ",'" + aa + "'";
                    }
                }
                sql = sql + " (" + sqlvalue + ")";
                //调用Sql添加方法
                fdzs.lei.zhufangfa zz = new lei.zhufangfa();
                zz.add(sql);
                //MessageBox.Show(sql);
            }
        }