怎样将DataSet一次性保存到数据库中去?
如题,我从页面上导入了一个Excel,经过处理后保存在内存中的DataSet中,现在怎样将这个DataSet一次性保存到数据库中去呢? 问题点数:40、回复次数:19Top
1 楼foxconn_nich(Blog: http://www.jemy.cn)回复于 2006-11-06 08:35:29 得分 0
顶,等人Top
2 楼dengkz1(@广州)回复于 2006-11-06 09:13:58 得分 0
upTop
3 楼MSTOP(陈建华)回复于 2006-11-06 09:23:01 得分 0
,现在怎样将这个DataSet一次性保存到数据库中去呢?
===========================================================
什么意思?序列化?Top
4 楼lbh119()回复于 2006-11-06 09:33:25 得分 0
update()Top
5 楼ipqxiang(Seans)回复于 2006-11-06 10:22:38 得分 0
好象没有这种方法吧,只能一条条新增吧,我也想知道...Top
6 楼bbbg()回复于 2006-11-06 10:26:56 得分 0
将DataSet关联到一个DataAdapter
Top
7 楼dick78(vs2005+Ajax)回复于 2006-11-06 11:08:35 得分 0
顶Top
8 楼MSTOP(陈建华)回复于 2006-11-06 12:40:06 得分 0
这得写程序,而且还比较复杂.还要结合具体是哪种类型的数据库.总之,没一千行左右的代码.是写不来Top
9 楼foxconn_nich(Blog: http://www.jemy.cn)回复于 2006-11-06 12:41:29 得分 0
真没办法?Top
10 楼haodouzhe123x(涉足CSDN)回复于 2006-11-06 13:36:20 得分 0
就目前我所知,还真的没办法解决,如MSTOP(陈建华)兄所说:还要结合具体是哪种类型的数据库.总之,没上百行代码.是写不来Top
11 楼PCHWBANK()回复于 2006-11-06 14:14:01 得分 0
有阿,就时利用dataadapter.update()方法Top
12 楼eastsun_genius(大漠狂沙)回复于 2006-11-06 14:23:57 得分 0
SqlCommand cmd=new SqlCommand(Sql,Conn);
cmd.CommandTimeout=COMMANDTIMEOUT;
cmd.CommandType=CommandType.Text;
SqlDataAdapter da=new SqlDataAdapter(cmd);
SqlCommandBuilder cb=new SqlCommandBuilder(da);
DataSet dsNew=new DataSet();
da.Fill(dsNew,TableName);
//具体你的处理
。。。。。。。
da.Update(dsNew,TableName);Top
13 楼foxconn_nich(Blog: http://www.jemy.cn)回复于 2006-11-07 08:36:50 得分 0
eastsun_genius(大漠狂沙)
-------------------------
你是说我整个dataset里面的数据就是你的这个dsNew?直接附给它一次处理就可以了?Top
14 楼bjgzxx(食人一族)回复于 2006-11-07 08:39:41 得分 0
应该是可以处理的Top
15 楼foxconn_nich(Blog: http://www.jemy.cn)回复于 2006-11-08 09:09:17 得分 0
请给出办法啊Top
16 楼winsor_w(.net才是硬道理)回复于 2006-11-08 09:25:15 得分 0
要根据数据新建表?Top
17 楼eastsun_genius(大漠狂沙)回复于 2006-11-22 15:40:27 得分 40
try
{
SqlConnection Conn=this.CreateConnection();
try
{
//得到原始数据
SqlCommand cmd=new SqlCommand(Sql,Conn);
cmd.CommandTimeout=COMMANDTIMEOUT;
cmd.CommandType=CommandType.Text;
SqlDataAdapter da=new SqlDataAdapter(cmd);
SqlCommandBuilder cb=new SqlCommandBuilder(da);
DataSet dsNew=new DataSet();
da.Fill(dsNew,TableName);
foreach(DataRow drOld in Data.Tables[0].Rows)
{
if(drOld.RowState==DataRowState.Added) //增加记录
{
DataRow drNew=dsNew.Tables[0].NewRow();
foreach(DataColumn dcNew in dsNew.Tables[0].Columns)
{
if(!dcNew.ReadOnly)
{
string strField=dcNew.ColumnName;
drNew[strField]=drOld[strField];
}
}
dsNew.Tables[0].Rows.Add(drNew);
}
else if(drOld.RowState==DataRowState.Modified) //修改记录
{
string strKey=drOld[KeyFieldName,DataRowVersion.Original].ToString();
DataRow[] drs=dsNew.Tables[0].Select(KeyFieldName+"='"+strKey+"'");
if(drs.GetLength(0)>0)
{
DataRow drModify=drs[0];
foreach(DataColumn dcNew in dsNew.Tables[0].Columns)
{
if(!dcNew.ReadOnly)
{
string strField=dcNew.ColumnName;
drModify[strField]=drOld[strField];
}
}
}
}
else if(drOld.RowState==DataRowState.Deleted) //删除记录
{
string strKey=drOld[KeyFieldName,DataRowVersion.Original].ToString();
DataRow[] drs=dsNew.Tables[0].Select(KeyFieldName+"='"+strKey+"'");
if(drs.GetLength(0)>0)
{
for(int i=drs.GetLength(0)-1;i>=0;i--)
{
DataRow drDelete=drs[i];
drDelete.Delete();
}
}
}
}
da.Update(dsNew,TableName);
}
catch(Exception e)
{
throw(e);
}
finally
{
this.Dispose(Conn);
}
}
catch(Exception e)
{
throw(e);
}Top
18 楼jackeyabc(过些天跟布什二女儿订婚))回复于 2007-01-08 19:34:15 得分 0
收藏Top
19 楼taogo(落叶封尘)回复于 2007-03-27 13:00:13 得分 0
upTop




