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

VB.net 2005打开EXCEL导入DataGridView显示并保存数据

要这样一个程序源码,界面是一个DataGridView控件,2个按钮,一个是用来导入EXCEL表格,另一个按钮是在导入excel表格的数据后保存数据,EXCEL表格的数据显示在DataGridView控件上了,求源码····
答案:这里是一个按钮 导入Excel数据到 数据库,刷新datagridview。 

//导入Excel数据
        private void tsBtnCopy_Click(object sender, EventArgs e)
        {
            DialogResult dresult = this.openFileDialog1.ShowDialog();
            if (dresult == DialogResult.OK)
            {
                string filepath = openFileDialog1.FileName;
                if (filepath == "")
                {
                    MessageBox.Show("请选择要导入的Excel文档!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    return;

                }

                try
                {
                    DataSet ds = new DataSet();
                    //取得数据集
                    //调用下面的函数

                    ds = xsldata(filepath);
                    //dataGridView2.DataSource = ds.Tables[0];
                    int errorcount = 0;//记录错误信息条数
                    int updatecount = 0;//更新信息条数
                    int insertcount = 0;//记录插入成功条数
                    string mess = "";

                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {

                        StudentsModel stuModel = new StudentsModel();
                        stuModel.StuID = Guid.NewGuid().ToString();
                        stuModel.CenterID = CentersManager.manager.GetList("").Tables[0].Rows[0]["CenterID"].ToString();
                        stuModel.StuName = ds.Tables[0].Rows[i][0].ToString();
                        stuModel.Sex = ds.Tables[0].Rows[i][1].ToString();
                        stuModel.School = ds.Tables[0].Rows[i][2].ToString();
                        stuModel.Grade = ds.Tables[0].Rows[i][3].ToString();
                        stuModel.LinkWay = ds.Tables[0].Rows[i][4].ToString();
                        if (!string.IsNullOrEmpty(ds.Tables[0].Rows[i][5].ToString()))
                        {
                            try
                            {
                                stuModel.BirthDay = Convert.ToDateTime(ds.Tables[0].Rows[i][5].ToString());
                            }
                            catch
                            {
                                mess+="第" + (i + 1) + "条数据生日格式不正确!\n";
                            }
                        }
                        stuModel.ParentName = ds.Tables[0].Rows[i][6].ToString();
                        stuModel.ParentLink = ds.Tables[0].Rows[i][7].ToString();
                        stuModel.Desc = ds.Tables[0].Rows[i][8].ToString();
                        if (!string.IsNullOrEmpty(ds.Tables[0].Rows[i][9].ToString()))
                        {
                            try
                            {
                                stuModel.CreateTime = Convert.ToDateTime(ds.Tables[0].Rows[i][9].ToString());
                            }
                            catch
                            {
                               mess+="第" + (i + 1) + "条数据注册时间格式不正确!\n";
                            }
                        }
                        stuModel.EndEditTime = DateTime.Now.Date;
                        DataTable stuTable = StudentsManager.manager.GetList(" StuName='" + stuModel.StuName + "' and ParentName='" + stuModel.ParentName + "' and ParentLink='"+stuModel.ParentLink+"' ").Tables[0];
                        if (stuTable.Rows.Count == 1)
                        {
                            string id = stuTable.Rows[0]["StuID"].ToString();
                            stuModel.StuID = id;
                            bool updateResult = StudentsManager.manager.Update(stuModel);
                            if (updateResult)
                                updatecount++;
                            else
                                errorcount++;
                        }
                        else
                        {
                            bool result = StudentsManager.manager.Add(stuModel);
                            if (result)
                                insertcount++;
                            else
                                errorcount++;
                        }

                    }

                    MessageBox.Show(insertcount + "条数据导入成功!"+updatecount+"条数据更新成功!\n\n" +mess+"出错数据导入为空!") ;
                    Binddgv();

                }

                catch (Exception ex)
                {

                    MessageBox.Show(ex.Message);

                }

            }
        }
        private DataSet xsldata(string filepath)
        {

            string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;IMEX=1'";

            System.Data.OleDb.OleDbConnection Conn = new System.Data.OleDb.OleDbConnection(strCon);

            string strCom = "SELECT * FROM [Sheet1$]";

            Conn.Open();

            System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, Conn);

            DataSet ds = new DataSet();

            myCommand.Fill(ds, "[Sheet1$]");
            Conn.Close();

            return ds;

        }

上一个:vb.net/.net怎样使用http协议的get和post?
下一个:vb.net 怎么备份当前正在连接的数据库(sql)

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,