RT,就是通过 FileUpload 控件把Excel 文件先上传到服务器,然后通过 Button 按钮导入到 SQL Server 2008的的 数据库中。
谁有类似实现这样功能比较全的代码的,发上来看一下,不甚感激!因为没接触过,所以不太会。
还有就是 Excel 中的字段比数据库中的少几个,还有值为空的字段, 导入的时候又该怎么处理?

解决方案 »

  1.   

    上传不是问题
    Button 按钮  直接导入到 SQL Server 2008的的 数据库中。这是个问题等高人。。
      

  2.   


    string name = "QA_Text_Template";
                string fileName = name + fileUp.FileName.Substring(fileUp.FileName.IndexOf("."));
                fileUp.SaveAs(Server.MapPath("../Upload/" + fileName));
                ViewState["tbExcel"] = ExcelToDataTable(Server.MapPath("../Upload/" + fileName), "Sheet1");
                string result = string.Empty;
                DataTable dtExcel = ViewState["tbExcel"] as DataTable;string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExcelFileName + ";" + "Extended Properties=Excel 5.0;";
                string strExcel = string.Format("select * from [{0}$]", strSheetName);
                DataSet ds = new DataSet();
                using (OleDbConnection conn = new OleDbConnection(strConn))
                {
                    conn.Open();
                    OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);
                    adapter.Fill(ds, strSheetName);
                    conn.Close();
                }
                return ds.Tables[strSheetName];
      

  3.   

    恩,那个 Save函数里面具体的方法是什么的?
      

  4.   

    ExcelToDataTable 是一个方法吗?是的话,给出具体的哦~
      

  5.   

    把Excel读到数据集中,循环数据集逐一插入就可以了
      

  6.   

    导入 其实就是读取上传组件
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data;
    using System.Data.SqlClient;public partial class _Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {    }
        protected void Button1_Click(object sender, EventArgs e)
        {
            string name = FileUpload1.FileName;//上传文件名字
            string size = FileUpload1.PostedFile.ContentLength.ToString();
            string type = FileUpload1.PostedFile.ContentType;
            string type2 = name.Substring(name.LastIndexOf(".") + 1);
            string ipath = Server.MapPath("upimg") + "\\" + name;
            string fpath = Server.MapPath("upfile") + "\\" + name;
            string path="F:\\aaa\\"+FileUpload1.FileName;
            string wpath = "upimg\\" + name;
            if (type2 == "jpg" || type2 == "gif" || type2 == "bmp" || type2 == "png")
            {
                FileUpload1.SaveAs("F:\\aaa\\"+FileUpload1.FileName);
               // Image1.ImageUrl="F:\\aaa\\"+FileUpload1.FileName;
                Label1.Text = "你传图片的名字是" + name + "<br>文件大小为" + size + "<br>文件类型为" + type2 + "<br>文件路径为" + ipath;
            }
            
            SqlConnection cn = new SqlConnection("server=.;database=Northwind;uid=sa;pwd=sa");
            SqlCommand cmd = new SqlCommand("insert into Image(imageName,imagepath) values('" + name + "','" + path + "')", cn);
            cn.Open();
            cmd.ExecuteNonQuery();
            cn.Close();
        }
        protected void Button2_Click(object sender, EventArgs e)
        {    SqlConnection cn = new SqlConnection("server=.;database=Northwind;uid=sa;pwd=sa");
        SqlCommand cmd = new SqlCommand("select imageName from Image where imageID='" + Convert.ToInt32(TextBox1.Text) + "'", cn);
        cn.Open();
        string a = cmd.ExecuteScalar().ToString();
        cn.Close();
        Image1.ImageUrl = "F:\\aaa\\" + a;
         }
    }读取EXCEL DataTable Excel_UserInfo = new DataTable();
    string strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileInfo.FullName + ";" + "Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1;\"";
                    string strExcel = "select * from [sheet1$]";                using (OleDbDataAdapter adaptor = new OleDbDataAdapter(strExcel, strConn))
                    {
                        DataSet ds = new DataSet();
                        adaptor.Fill(ds);
                        Excel_UserInfo = ds.Tables[0];
                    }