当前位置:编程学习 > C#/ASP.NET >>

FileUpload 上传txt文件读取到gridview 再写进数据库

1,最近做项目做个上传txt附件(只有一列),gridview 显示txt,然后submit 才能写进数据库的界面如下
有没有好的方法


2,还有一个是一个textbox文本框里面输入一个字符,下面的gridview就显示一行同时也往数据库插入一行,因为我不想让gridview一直和数据库一直联着,所以前台的girdview想绑定一个临时的空间,界面如下
--------------------编程问答-------------------- --------------------编程问答-------------------- 为什么要用GridView来显示txt里面的内容和textbox的内容呢? --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 第一个,上传读取先不谈;
第二个,文本框输入,然后gridview 显示,并添加到数据库。
你可以修改一下,后天写一个List<String> ,文本框输入,把字符存入List集合中,然后this.Gridview.DataSource=list 绑定一下。最后有一个添加,点击添加按钮把GridView中所有的数据添加到数据库就行了。 --------------------编程问答-------------------- 后天=后台


 /// <summary>
    /// 确定
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnFileUp_Click(object sender, EventArgs e)
    {
        string xlsName = "";
        try
        {


            //使用FileUpload1 上传Excel并读取信息写入GridView
            if (this.FileUpload1.HasFile)
            {
                string IsXls = System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower();
                
                if (IsXls != ".xls")
                {
                    MessageBox.Show("本程序只能识别excel文件!",this);
                    return;
                }
                xlsName =  DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss")+System.IO.Path.GetFileName(FileUpload1.FileName) ;

                // string filename = this.FileUpload1.PostedFile.FileName.ToString().Trim();

                DataTable dt = new DataTable();
                int len = this.FileUpload1.FileName.ToString().Trim().Length;

                string path = Server.MapPath("../UpLoad/") + xlsName;
                this.FileUpload1.SaveAs(path); //上传文件

                //将上传的Excel文件数据读取出来
                dt = this.InputExcel(xlsName, this.FileUpload1.FileName.ToString().Trim().Substring(0, len - 4), "");
                
                //if (Session["inputdt"] != null)
                //    Session.Remove("inputdt");
                //Session.Add("inputdt", inputdt);
                
                if (dt.Rows.Count > 0)
                {
                    this.GridView1.DataSource = dt;
                    this.GridView1.DataBind();
                }
            }
            else
                throw new Exception("请选择导入表的路径");
        }
        catch (Exception ex)
        {
            Response.Write("<script language='javascript'>alert('" + ex.Message + "');</script>");
        }
    }


    /// <summary>
    /// 导入数据到数据集中
    /// </summary>
    /// <param name="Path"></param>
    /// <param name="TableName"></param>
    /// <param name="tablename2">如果这个有就以他为表名,没有的话就以TableName</param>
    /// <returns></returns>
    public DataTable InputExcel(string xlsName, string TableName, string tablename2)
    {
        try
        {
            //获取到上传的Excel
            string ThePath = Server.MapPath("../") + "UpLoad\\" + xlsName;
            
            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + ThePath + ";" + "Extended Properties=Excel 8.0;";
            
            OleDbConnection conn = new OleDbConnection(strConn);
            conn.Open();
            
            string strExcel = "";
            
            OleDbDataAdapter myCommand = null;

            if (tablename2.Length > 0 && !tablename2.Equals(string.Empty))
            {
                TableName = tablename2;
            }
                

            strExcel = "select * from [" + TableName + "$]";

            myCommand = new OleDbDataAdapter(strExcel, strConn);
            DataTable dt = new DataTable();
            myCommand.Fill(dt);

            conn.Close();
            return dt;

        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
    }

--------------------编程问答-------------------- 需要的txt的长传的 ,亲
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,