解决方案 »
- .net引用与对象与JS相关疑问
- 网站文件夹设置及内容编译遇到的问题
- 登陆验证问题?
- asp.net 是否可以自动过滤一些特殊字符?
- .net IDE崩溃的问题
- VSS的问题
- datagrid的编辑列<ItemTemplate>中有两个Label控件,lbl1和lbl2,怎么根据传递来的参数,隐藏或显示lbl1的lbl2
- Response=((System.Web.UI.Page)parent).Response;这句应该怎么解释?
- 求匹配多个自定义的标签的正则表达式,谢谢。
- 初学者:提问 我有C:\AAA.DOC,请问在C#中如何将这个文档存入数据表中的一个TEXT字段中,急---在线等待
- ASP.NET MVC EasyUI datagrid条件查询问题
- 如何维护商品数量
http://www.cnblogs.com/insus/archive/2011/05/05/2037808.html
http://www.cnblogs.com/insus/archive/2012/06/12/2545801.html
http://www.cnblogs.com/insus/p/3814857.html
//加载数据操作
public void LoadData(string StyleSheet)
{
//定义数据库连接字符串 m
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" + Server.MapPath("学生成绩.xls") + ";Extended Properties=Excel 8.0";
//创建数据库连接
OleDbConnection myConn = new OleDbConnection(strCon);
//打开数据链接,得到一个数据集
myConn.Open();
//创建DataSet对象
DataSet myDataSet = new DataSet();
//定义查询的SQL语句
string StrSql = "select * from [" + StyleSheet + "$]";
//创建数据库适配器
OleDbDataAdapter myCommand = new OleDbDataAdapter(StrSql, myConn);
//填充数据集中的数据
myCommand.Fill(myDataSet, "[" + StyleSheet + "$]");
//释放占有的资源
myCommand.Dispose();
//关闭数据库连接
myConn.Close();
}
//数据库操作
public int ExScalar(string sql)
{
OleDbConnection conn = CreateCon();
conn.Open();
OleDbCommand com = new OleDbCommand(sql, conn);
return Convert.ToInt32(com.ExecuteScalar());
conn.Close();
}
//Excel文件操作
protected void ExcelToAccess_Click(object sender, EventArgs e)
{
//定义Excel列表
string StyleSheet = "Sheet1";
//调用自定义LoadData方法,将Excel文件中数据读到ASPNET页面中
LoadData(StyleSheet);
//定义查询的SQL语句
string sql = "select ID,用户姓名,试卷,成绩,考试时间 from Score";
//创建Oledb数据库连接
OleDbConnection con = CreateCon();
con.Open();//打开数据库连接
OleDbCommand com = new OleDbCommand(sql, con);
//开始事务
OleDbTransaction tran = con.BeginTransaction();
com.Transaction = tran;
//创建适配器
OleDbDataAdapter da = new OleDbDataAdapter(com);
OleDbCommandBuilder cb = new OleDbCommandBuilder(da);
//创建DataSet数据集
DataSet ds = new DataSet();
//填充数据集
da.Fill(ds);
int curIndex = 0;
if (ds.Tables[0].Rows.Count > 0)
{
curIndex = Convert.ToInt32(ds.Tables[0].Rows[0][0]);
}
//创建一个内存表
DataTable tb = this.getExcelDate();
string selsql = "";
for (int i = 0; i < tb.Rows.Count; i++)
{
string UserName = tb.Rows[i][0].ToString();
selsql = "select count(*) from Score where 用户姓名='" + UserName + "'";
}
//判断Excel文件中是否已经导入到Access数据库中
if (ExScalar(selsql) > 0)
{
Label1.Visible = true;
Label1.Text = "<script language=javascript>alert('该Excle中的数据已经导入数据库中!');location='ExcelToAccess.aspx';</script>";
}
else
{
//循环读取Excel文件中数据,并添加到Access事先创建好的数据库表中
for (int i = 0; i < tb.Rows.Count; i++)
{
DataRow dr = ds.Tables[0].NewRow();
dr[0] = ++curIndex;
dr[1] = tb.Rows[i][0];
dr[2] = tb.Rows[i][1];
dr[3] = tb.Rows[i][2];
dr[4] = tb.Rows[i][3];
ds.Tables[0].Rows.Add(dr);
}
try
{
da.Update(ds);//执行插入操作
tran.Commit();//事务提交
Label1.Visible = true;
Label1.Text = "<script language=javascript>alert('数据导入成功!');location='ExcelToAccess.aspx';</script>";
}
catch
{
tran.Rollback();//事务回滚
Label1.Visible = true;
Label1.Text = "<script language=javascript>alert('数据导入失败!');location='ExcelToAccess.aspx';</script>";
}
finally
{
con.Close();//关闭数据库连接
}
}
//由于字符限制其他部分不能呈现