通过动态在dataTable中添加DataRow
然后sqldataadapter.update()方法一起提交实现
然后sqldataadapter.update()方法一起提交实现
解决方案 »
- xml文件绑定筛选的问题
- 请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个 <customErrors> 标记。然后应将此 <customErrors>
- 关于asp.net中的base类问题
- 带格式的字符串输出到Excel时如何转换?
- 【100分】VS2005自带打包程序,如何区分“安装”、“修复”等状态问题?
- 使用.NET的ASP:label控件后,如何调用客户端的JAVASCRIPT脚本
- DataGrid分页问题,求分页源码!测试通过的给高分
- ajax脚本调用后置代码
- HTML控件和Web控件都可以在asp.net程序中使用,而且可以混合使用(我就是这么用的)。那么它们哪儿不一样呢,又分别该在什么情况下使用呢
- 加密后的网址不管怎么解码都是乱码,请高手帮忙看看
- 我想在用户出入密码后按回车就开始进入验证密码的代码,在asp.net中怎么做?
- 如何让用户只能通过按钮操作,而不能编辑input File的Textbox?
对数据库操作的时候,有时候需要多条数据的操作,使用sql语句消耗资源大
解决办法:
举例如下
Dim myDataAdapter As New SqlClient.SqlDataAdapter()
myDataAdapter.SelectCommand = New SqlClient.SqlCommand("select * from 表 where 条件", DeviceConnection)
Dim custCB As SqlClient.SqlCommandBuilder = New SqlClient.SqlCommandBuilder(myDataAdapter)
DeviceConnection.Open()
Dim custDS As DataSet = New DataSet()
Dim dr As DataRow
myDataAdapter.Fill(custDS, "设备备件关系表")
'更改dataset的datatable的datarow
dr = custDS.Tables("设备_备件关系表").NewRow
'你可以在此添加数据
custDS.Tables("设备_备件关系表").Rows.Add(dr)
myDataAdapter.Update(custDS, "设备备件关系表")
'更新所作的修改
DeviceConnection.Close()
insert ....
union
insert....
这种方法执行,至少我没用过
如果同时访问系统的人很多
就会涉及到并发的问题。你把数据都取过来,然后再dataset中一条条修改,你改完了一起提交都库表。如果你改了5分钟才改完,那别的人这时候如果改变了库表里的数据,假设删除了一条记录,但你的dataset里还有这条记录,你sqladapter.update时就找不到它了。所以还是建议你用insert的sqlcommand对象一条条去插入,除非整个系统只有你一个人访问。当然,这只是极端情况。
能不能提供例程啊?我还是不明白!你说的是不是就不存在mbm(-- (@ \/ @) --) 所说的问题了呢?
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataSqlClientSqlConnectionClassBeginTransactionTopic.htm
ms-help://MS.VSCC/MS.MSDNVS.2052/Vbcon/html/vboriDataUpdatesConcurrency.htm
你说的那两个网址都找不到服务器。
tran,如果要全部插入成功才算成功,那只需在开始用begin tran,插入结束用commit tran就行了。具体用法视具体语句,最好不要在.net中用,因为.net好像不建议用事务处理。
测试程序如下: Dim strcomm As String = "select account,custtype from custtype" MySda.SelectCommand = New SqlClient.SqlCommand(strcomm, MyConn) Dim oDS As New DataSet()
MySda.MissingSchemaAction = MissingSchemaAction.AddWithKey
MySda.Fill(oDS, "cust")
Response.Write("oetu")
Response.End() Dim oParam As SqlClient.SqlParameter MySda.InsertCommand = New SqlClient.SqlCommand("insert into custtype (account,custtype) values (@account,@custtype)", MyConn)
oParam = MySda.InsertCommand.Parameters.Add(New SqlClient.SqlParameter("@account", SqlDbType.Char, 16))
oParam.SourceVersion = DataRowVersion.Current
oParam.SourceColumn = "account" oParam = MySda.InsertCommand.Parameters.Add(New SqlClient.SqlParameter("@custtype", SqlDbType.Int, 4))
oParam.SourceVersion = DataRowVersion.Current
oParam.SourceColumn = "custtype" Dim index As Integer
Dim oRow As DataRow
For index = 0 To 1
oRow = oDS.Tables("cust").NewRow
oRow.Item("account") = TextBox1.Text
oRow.Item("custtype") = TextBox2.Text
oDS.Tables("cust").Rows.Add(oRow)
Next
MyConn.Open() Try MySda.Update(oDS, "cust")
Response.Write("<script language=javascript>alert('插入记录成功!!!')</SCRIPT>")
Catch Exp As SqlClient.SqlException
If Exp.Number = 2627 Then
Response.Write("<script language=javascript>alert('您插入的记录已经存在!!!')</SCRIPT>")
Else
Response.Write("<script language=javascript>alert('没有插入记录!!!')</SCRIPT>")
End If
End Try MyConn.Close()