把DataSet表中的数据更新到数据库(急急急!!!在线等.....)
现在已经向Dataset表中添加了新的一行数据,但是没有实现把Dataset表中的数据更新到数据库,很郁闷!!!小弟刚学VB.NET,请各位大侠指点迷经!!!
Dim dr As DataRow = dsOperator.Tables(0).NewRow
Try
dr(ClsOperator.FieldsUserName) = OperatorUserName
dr(ClsOperator.FieldsUserNameAll) = OperatorUserNameAll
dr(ClsOperator.FieldsUserDesc) = OperatorUserDesc
dr(ClsOperator.FieldsLocaDepart) = OperatorLocaDepart
dr(ClsOperator.FieldsPassword) = OperatorPassword
dr(ClsOperator.FieldsPrivLevel) = OperatorPrivLevel
dsOperator.Tables(0).Rows.Add(dr)
其中dsOperator为数据集DataSet对象,运行完上述代码后,dsOperator中已经添加了一行记录,但是小弟现在不知如何实现把DataSet中的记录更新到数据库??????
问题点数:40、回复次数:8Top
1 楼mohaircn(一杯酒)回复于 2006-03-06 15:51:29 得分 10
dim cn as new sqlconnection(constr)
dim da as new SqlDataAdapter("select * from tablename",cn)
dim ds as new dataset
da.fill(ds,"tablename")
.....
你上面的代码
...
da.update(ds,"tablename")
ds.AcceptChanges()Top
2 楼sz_lgp(longguoping)回复于 2006-03-06 16:08:50 得分 0
在此网上找一下有详细的介绍和实例。Top
3 楼fengyun_z(易风居士)回复于 2006-03-06 16:52:14 得分 0
mohaircn(一杯酒) ,你好,我试了一下,提示我
"当传递具有新行的DATAROW集合时,更新要求有效的InsertCommmand."
不知为何?Top
4 楼dragonlus(毒龙)回复于 2006-03-06 16:58:04 得分 20
public sub write()
With Henchadp
.SelectCommand = New SqlCommand
With .SelectCommand
.Connection = Myconn
.CommandText = "select * from henchman"
.CommandType = CommandType.Text
End With
.InsertCommand = New SqlCommand
With .InsertCommand
.Connection = Myconn
.CommandText = "insert into henchman(henchcode,henchnamec,henchnamee,createuser,createdt,updateuser,updatedt) "
.CommandText = .CommandText + "values (@henchcode,@henchnamec,@henchnamee,@createuser,@createdt,@updateuser,@updatedt)"
.CommandType = CommandType.Text
With .Parameters
.Add("@henchcode", SqlDbType.VarChar, 50, "henchcode")
.Add("@henchnamec", SqlDbType.VarChar, 50, "henchnamec")
.Add("@henchnamee", SqlDbType.VarChar, 50, "henchnamee")
.Add("@createuser", SqlDbType.Int, 4, "createuser")
.Add("@createdt", SqlDbType.DateTime, 8, "createdt")
.Add("@updateuser", SqlDbType.Int, 4, "updateuser")
.Add("@updatedt", SqlDbType.DateTime, 8, "updatedt")
End With
End With
.UpdateCommand = New SqlCommand
With .UpdateCommand
.Connection = Myconn
.CommandText = "update henchman set henchnamec=@henchnamec,"
.CommandText = .CommandText + "henchnamee=@henchnamee,"
.CommandText = .CommandText + "updateuser=@updateuser,"
.CommandText = .CommandText + "updatedt=@updatedt where henchcode=@henchcode"
.CommandType = CommandType.Text
With .Parameters
.Add("@henchnamec", SqlDbType.VarChar, 50, "henchnamec")
.Add("@henchnamee", SqlDbType.VarChar, 50, "henchnamee")
.Add("@updateuser", SqlDbType.Int, 4, "updateuser")
.Add("@updatedt", SqlDbType.DateTime, 8, "updatedt")
.Add("@henchcode", SqlDbType.VarChar, 50, "henchcode")
End With
End With
.DeleteCommand = New SqlCommand
With .DeleteCommand
.Connection = Myconn
.CommandText = "delete from henchman where henchcode=@henchcode"
.CommandType = CommandType.Text
.Parameters.Add("@henchcode", SqlDbType.VarChar, 50, "henchcode")
End With
.AcceptChangesDuringFill = True
.MissingSchemaAction = MissingSchemaAction.AddWithKey
Try
.Fill(Henchset, "henchman")
Catch ex As Exception
MsgBox(Err.Description)
End Try
End With
HenchDV = New DataView(Henchset.Tables("henchman"))
datagrid1.datasource=henchdv
end sub
public sub deleterow()
henchdv(0).delete()
henchad.update(henchset,"hench")
end sub
Top
5 楼fengyun_z(易风居士)回复于 2006-03-06 17:06:52 得分 0
dragonlus(毒龙) 兄弟你好!
当Insert .... value(....)
的Value 中包含数值型如何处理???
日期时间型又如何处理???Top
6 楼cattleknife(解牛刀)回复于 2006-03-07 05:55:45 得分 0
NND,为什么C# 里不也弄个With关键字啊Top
7 楼lhx1977(清水无鱼)回复于 2006-03-07 08:07:25 得分 10
如果你的表里有主键,使用cmdbuilder直接生成一个更新的command
with使用也不是太方便吧。我不喜欢。
Top
8 楼iegrhn(‘)回复于 2006-03-07 08:46:54 得分 0
内存表和数据库中的表如果是一对一的话可以如 lhx1977(清水无鱼) 使用cmdbuilder直接生成一个更新的command 如果内存表来自数据库的多个表的话 一般需要再写SQL等来实现同步
Top




