解决方案 »

  1.   

    分两步:
    1.读excel,放到datatable里
    2.循环datatable,插入数据库
    就这么简单.
    你把这两个研究明白了,问题就迎刃而解
    研究不明白,就好好研究吧,不要老想一步到位
      

  2.   

    第一步:上传XLS文件到到服务器
    第二步:读取XLS文件到DATATABLE
    第三步:循环遍历DATATABLE插入数据库
      

  3.   

    将Excel数据文件导入到SQL Server数据库示例
    //选择Excel数据文件
     private void btn_Select_Click(object sender, EventArgs e)
            {
                openFileDialog1.Filter = "Excel文件|*.xls";//设置打开文件筛选器
                openFileDialog1.Title = "选择Excel文件";//设置打开对话框标题
                openFileDialog1.Multiselect = true;//设置打开对话框中可以多选
                if (openFileDialog1.ShowDialog() == DialogResult.OK)//判断是否选择了文件
                {
                    for (int i = 0; i < openFileDialog1.FileNames.Length; i++)//遍历所有选择的文件
                        txt_Path.Text += openFileDialog1.FileNames[i] + ",";//在文本框中显示Excel文件名
                }//codego.net/tags/1/1/
            }
    //选择数据库
    private void btn_Refresh_Click(object sender, EventArgs e)
            {
                //定义SQL语句
                string P_str_Con = "Data Source=" + txt_Server.Text + ";Database=master;Uid=" + txt_Name.Text + ";Pwd=" + txt_Pwd.Text + ";";
                cbox_Server.DataSource = GetTable(P_str_Con);//为下拉列表指定数据源
                cbox_Server.DisplayMember = "name";//设置下拉列表中显示的字段名称
                cbox_Server.ValueMember = "name";//设置下拉列表中显示的值名称
                if (cbox_Server.Items.Count > 0)//如果下拉列表中有项
                    cbox_Server.SelectedIndex = 0;//设置默认选择第一项
            }
    //获取指定服务器中的所有数据库private DataTable GetTable(string P_str_Sql)
            {
                try
                {
                    SqlConnection sqlcon = new SqlConnection(P_str_Sql);//实例化数据库连接对象
                    SqlDataAdapter sqlda = new SqlDataAdapter("select name from sysdatabases ", sqlcon);//实例化数据桥接器对象
                    DataTable DTable = new DataTable("sysdatabases");//实例化DataTable对象
                    sqlda.Fill(DTable);//填充DataTable数据表
                    return DTable;//返回DataTable数据表
                }
                catch
                {
                    return null;//返回null
                }
            }
    //把Excel数据导入到数据库
     private void btn_Export_Click(object sender, EventArgs e)
            {
                string[] P_str_Names = txt_Path.Text.Split(',');//存储所有选择的Excel文件名
                string P_str_Name = "";//存储遍历到的Excel文件名
                List<string> P_list_SheetNames = new List<string>();//实例化泛型集合对象,用来存储工作表名称
                for (int i = 0; i < P_str_Names.Length - 1; i++)//遍历所有选择的Excel文件名
                {
                    P_str_Name = P_str_Names[i];//记录遍历到的Excel文件名
                    P_list_SheetNames = GetSheetName(P_str_Name);//获取Excel文件中的所有工作表名
                    for (int j = 0; j < P_list_SheetNames.Count; j++)//遍历所有工作表
                    {
                        if (ckbox_Windows.Checked)//如果用Windows身份验证登录Sql Server
                            ImportDataToSql(P_str_Name, P_list_SheetNames[j], "Data Source=" + txt_Server.Text + ";Initial Catalog =" + cbox_Server.Text + ";Integrated Security=SSPI;");//将工作表内容导出到Sql Server
                        else if (ckbox_SQL.Checked)//如果用Sql Server身份验证登录Sql Server
                            ImportDataToSql(P_str_Name, P_list_SheetNames[j], "Data Source=" + txt_Server.Text + ";Database=" + cbox_Server.Text + ";Uid=" + txt_Name.Text + ";Pwd=" + txt_Pwd.Text + ";");//将工作表内容导出到Sql Server
                    }
                }
                MessageBox.Show("已经将所有选择的Excel工作表导入到了Sql Server数据库中!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
      

  4.   

    参见:http://www.cnblogs.com/bicabo/archive/2009/05/05/1449906.html
    可以使用sqlbulkcopy 批量拷贝到数据库。参见:http://www.cnblogs.com/shikyoh/archive/2011/07/01/2095633.html
      

  5.   

    先要将Excel中的数据读取到DataTable中,然后再遍历DataTable把数据插入到数据库中。C#Excel数据转换成DataTable,详见http://bbs.netluntan.com/showtopic-417.aspx,将Excel中的数据转换成DataTable。