VB.net 2005打开EXCEL导入DataGridView显示并保存数据
要这样一个程序源码,界面是一个DataGridView控件,2个按钮,一个是用来导入EXCEL表格,另一个按钮是在导入excel表格的数据后保存数据,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)