小弟从外部的excel中读取了数据,并填充到dataset中,然后想将dataset中的数据都
插入到数据库中指定的表,填充的数据只是表中字段的一部分。请问怎么来做呀
大哥帮忙!!!!!!!!!!!!!!!!!!!!!!!
if( ( this.File1.PostedFile != null ) && (this.File1.PostedFile.ContentLength > 0 ) )
{
string fn=File1.PostedFile.FileName;
try
{
//向excel中填写数据
string strCon = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source ="+@fn+";Extended Properties=Excel 8.0" ;
OleDbConnection oleDbConnection1 = new System.Data.OleDb.OleDbConnection (strCon) ;
string strCom = " SELECT * FROM [Sheet1$] " ;
oleDbConnection1.Open () ;
//file://打开数据链接,得到一个数据集
OleDbDataAdapter oleDbDataAdapter1 = new System.Data.OleDb.OleDbDataAdapter ( strCom ,oleDbConnection1 ) ;
// file://创建一个 DataSet对象
DataSet myDataSet = new DataSet () ;
// file://得到自己的DataSet对象
oleDbDataAdapter1.Fill(myDataSet);
//file://关闭此数据链接
oleDbConnection1.Close() ;
DataGrid1.DataSource = myDataSet;
this.DataGrid1.DataBind();
Response.Write(myDataSet.Tables[0].Rows[0][0].ToString());
//统一插入
try
{
string myConnection="Initial Catalog=dgda;Data Source=zzy;user id=sa;password=aaaaaa;";
SqlConnection myConn = new SqlConnection(myConnection);
SqlDataAdapter myDataAdapter = new SqlDataAdapter("selcet bh,xm,xb,zz,xl,zyfw,zyzl,zydq,qb,xf,bxf,sf from tusedgda",myConn);
myDataAdapter.TableMappings.Add("Table","tusedgda");
SqlCommandBuilder CB = new SqlCommandBuilder(myDataAdapter);
myConn.Open();
int i=CB.DataAdapter.Update(myDataSet);
if(i>0)
{
Response.Write("sssss");
}
myConn.Close();
Response.Write("插入成功");
}
catch(Exception a)
{
Response.Write(a.Message);
}
但是没有执行插入,郁闷
插入到数据库中指定的表,填充的数据只是表中字段的一部分。请问怎么来做呀
大哥帮忙!!!!!!!!!!!!!!!!!!!!!!!
if( ( this.File1.PostedFile != null ) && (this.File1.PostedFile.ContentLength > 0 ) )
{
string fn=File1.PostedFile.FileName;
try
{
//向excel中填写数据
string strCon = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source ="+@fn+";Extended Properties=Excel 8.0" ;
OleDbConnection oleDbConnection1 = new System.Data.OleDb.OleDbConnection (strCon) ;
string strCom = " SELECT * FROM [Sheet1$] " ;
oleDbConnection1.Open () ;
//file://打开数据链接,得到一个数据集
OleDbDataAdapter oleDbDataAdapter1 = new System.Data.OleDb.OleDbDataAdapter ( strCom ,oleDbConnection1 ) ;
// file://创建一个 DataSet对象
DataSet myDataSet = new DataSet () ;
// file://得到自己的DataSet对象
oleDbDataAdapter1.Fill(myDataSet);
//file://关闭此数据链接
oleDbConnection1.Close() ;
DataGrid1.DataSource = myDataSet;
this.DataGrid1.DataBind();
Response.Write(myDataSet.Tables[0].Rows[0][0].ToString());
//统一插入
try
{
string myConnection="Initial Catalog=dgda;Data Source=zzy;user id=sa;password=aaaaaa;";
SqlConnection myConn = new SqlConnection(myConnection);
SqlDataAdapter myDataAdapter = new SqlDataAdapter("selcet bh,xm,xb,zz,xl,zyfw,zyzl,zydq,qb,xf,bxf,sf from tusedgda",myConn);
myDataAdapter.TableMappings.Add("Table","tusedgda");
SqlCommandBuilder CB = new SqlCommandBuilder(myDataAdapter);
myConn.Open();
int i=CB.DataAdapter.Update(myDataSet);
if(i>0)
{
Response.Write("sssss");
}
myConn.Close();
Response.Write("插入成功");
}
catch(Exception a)
{
Response.Write(a.Message);
}
但是没有执行插入,郁闷
解决方案 »
- (在线等待)通过下拉列表,动态隐藏gridview表头和相应的列的问题
- 急,急,急在线等
- 【在线】怎样实现刷新验证码?
- 一个fileup组件。同时上传5个文件非常有趣的实现。
- .net下实现可以拖动节点的树形菜单
- IsPostBack看了帮助还是不大明白,书上也没解释,可以问下到底啥作用?谢谢
- 简单问题,帮忙说一下吧!!
- 初学ASP.NET 想写个新闻系统练手,碰到了一个关于图片的问题。。。。
- flexpaper显示swf问题,就差这一步了
- 请问在ASP.NET中如何实现打印? 谢谢!!
- 要做个上传,下载视频文件的功能,还要可以在线观看,请大家帮忙?
- 可以把一个.dll文件反编绎成.cs文件吗?
//file://关闭此数据链接
原因:你必须了解DataAdapter的Update方法的原理,它的操作基于DataRow的RowState属性,当删除、修改、新增一行时,这一行的RowState属性会自动更改为相应的状态,然后,调用Update方法时就会搜索这些状态,利用生成的Command取更新数据库;说到这里,差不多就明白了,由于你的DataTable是从excel读进来的,它的RowState属性并未进行任何更改,Update时也就不会更新任何数据!另外遗憾的是DataRow的RowState属性时只读的。可以改一下,新定义一个DataTable,用一个循环从原有的DataTable中逐条插入到新的DataTable中,然Update这个DataTable;
思路是好的, 但是请参考DataAdapter的AcceptChangesDuringFill属性DataAdapter在设计时并不是没有考虑这些的