c#.net从excel表导入数据到网页而达到快速增加数据库行的操作

-我的平台是vs2008+sql2005-我想在网页实现,添加一个按钮,规定excel表的格式之后,能把excel的相应行的数据全部导入到sql2005里面,要准确对好我... - 我的平台是vs2008+sql2005- 我想在网页实现,添加一个按钮,规定excel表的格式之后,能把excel的相应行的数据全部导入到sql2005里面,要准确对好我的sql预定的列- 大概的方法是怎样,希望能提供重要代码或例子参考,感谢 展开
 我来答
小宝爸爸笔记
2012-03-21 · TA获得超过2297个赞
知道小有建树答主
回答量:904
采纳率:50%
帮助的人:660万
展开全部
这样的问题很多了
你需要一个放一个fileupload控件 用来上传excel ,还需要在项目里建一个文件夹用来存放你要上传的excel 。因为系统总是先把文件传到服务器上再进行操作,而不是对每个人的桌面excel直接操作。
using System.Data.SqlClient;
using System.Data.OleDb; //  要加这两句
public DataSet ExecleDs(string filenameurl, string table) // 这个函数就是将上传的excel读入dataset
{
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filenameurl + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'"; // 这里excel03 如要该成07版再问我或者百度
string strcom = "select *from [Sheet1$]";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
DataSet ds = new DataSet();
OleDbDataAdapter odda = new OleDbDataAdapter(strcom, conn);
odda.Fill(ds, table);
return ds;

}

protected void Button4_Click(object sender, EventArgs e) // 你的那个确定按钮
{
SqlConnection con = new SqlConnection();
con.ConnectionString = "server='CWJMXT-14\\SQLEXPRESS';database='E-test';uid='sa';pwd=‘..'" ; // 你自己的数据库连接
if (FileUpload1.HasFile == false)//HasFile用来检查FileUpload是否有指定文件
{
Response.Write("<script>alert('请您选择Excel文件')</script> ");
return;//当无文件时,返回
}
string IsXls = System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower();//System.IO.Path.GetExtension获得文件的扩展名
if (IsXls != ".xls")
{
Response.Write("<script>alert('只可以选择Excel文件')</script>");
return;//当选择的不是Excel文件时,返回
}

con.Open();
string filename = FileUpload1.FileName; //获取Execle文件名 DateTime日期函数
// Label2.Text = filename;
string savePath = Server.MapPath(("~\\upfiles\\") + filename);//Server.MapPath 获得虚拟服务器相对路径
FileUpload1.SaveAs(savePath); //SaveAs 将上传的文件内容保存在服务器上
DataSet ds = ExecleDs(savePath, filename); //调用自定义方法
DataRow[] dr = ds.Tables[0].Select(); //定义一个DataRow数组
int rowsnum = ds.Tables[0].Rows.Count;
if (rowsnum == 0)
{
Response.Write("<script>alert('Excel表为空表,无数据!')</script>"); //当Excel表为空时,对用户进行提示
}
else
{
for (int i = 0; i < dr.Length; i++)
{
//string pininputdate = dr[i]["].ToString();//日期 excel列名【名称不能变,否则就会出错】

string insertstr = "insert into item1(试题组别,试题类型,试题题目,选项A,选项B,选项C,选项D,正确答案,随机或必出)values('" + dr[i][0].ToString() + "','" + dr[i][1].ToString() + "','" + dr[i][2].ToString() + "','" + dr[i][3].ToString() + "','" + dr[i][4].ToString() + "','" + dr[i][5].ToString() + "','" + dr[i][6].ToString() + "','" + dr[i][7].ToString() + "','" + dr[i][8].ToString() + "')"; //这里就是具体怎么样一行一行将dataset中的数据导入sql的 你也可以加一些其他判断什么的。 SqlCommand cmd = new SqlCommand(insertstr, con);
try
{
cmd.ExecuteNonQuery();
}
catch (MembershipCreateUserException ex) //捕捉异常
{
Response.Write("<script>alert('导入内容:" + ex.Message + "')</script>");
}

}
Response.Write("<script>alert('Excle表导入成功!');location='itemmaintain.aspx'</script>");
}
con.Close();
}
溥景辉n9
2012-03-21 · 超过32用户采纳过TA的回答
知道答主
回答量:120
采纳率:0%
帮助的人:98.2万
展开全部
楼上的说的很详细了,赞同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式