.net 动态多重插入
我有一个表单,允许用户在数据库中插入“项”。字段询问要插入多少项。相同的数据(除了它们的ID)按它们选择的次数插入到数据库中。我找到了插入多个项目的不同方法,但在动态完成时却没有。我正在使用.NET3.5和SQLServer2005。我必须使用For…Next语句还是有其他方法?谢谢 更新:我的简化插入代码如下:.net 动态多重插入,.net,sql-server-2005,insert,.net,Sql Server 2005,Insert,我有一个表单,允许用户在数据库中插入“项”。字段询问要插入多少项。相同的数据(除了它们的ID)按它们选择的次数插入到数据库中。我找到了插入多个项目的不同方法,但在动态完成时却没有。我正在使用.NET3.5和SQLServer2005。我必须使用For…Next语句还是有其他方法?谢谢 更新:我的简化插入代码如下: Dim sqlCmd1 As String sqlCmd1 = "INSERT INTO Table_Items (ItemType, ItemDescription
Dim sqlCmd1 As String
sqlCmd1 = "INSERT INTO Table_Items (ItemType, ItemDescription, ContactName, ContactEmail) VALUES (@ItemType, @ItemDescription, @ContactName, @ContactEmail);"
'Dim ID As Integer
Dim connectionString As String = ConfigurationManager.ConnectionStrings("ConnectionString").ToString()
Dim conn As SqlConnection = New SqlConnection(connectionString)
Dim Cmd1 As SqlCommand = New SqlCommand(sqlCmd1, conn)
With Cmd1.Parameters
.Add(New SqlParameter("@ItemType", Textbox1.Text))
.Add(New SqlParameter("@ItemDescription", Textbox2.Text))
.Add(New SqlParameter("@ContactName", Textbox3.Text))
.Add(New SqlParameter("@ContactEmail", Textbox4.Text))
End With
Try
conn.Open()
ID = Cmd1.ExecuteScalar()
Server.Transfer("confirmation.aspx")
conn.Close()
Catch ex As SqlException
lblError.Text = ex.Message()
End Try
由于这是相同的数据,并且考虑到最坏的情况,即用户选择插入的数量(多少项)将合理地增加,为了避免不必要的负载到数据库,我将编写一个存储过程,并只传递总数和项数据。如果属性更多,则对项目数据使用XML。使用样式的最简单方法是在循环中添加对Cmd1.ExecuteScalar()的调用
为i As Integer=1计数器Cmd1.ExecuteScalar()下一步
但请注意,这肯定不是一般用法的正确方法。当你保持它小,没有这么多的开销,否则最好走@anivas的路
同时检查,如果可能的话,我建议切换到LINQToSql。这会节省你很多时间。检查,然后当您谈论“动态完成”时,您的意思是什么?使用DB有很多种方法,您使用哪一种?LINQToSql、数据适配器、StoredProcess调用或其他什么?您需要一次插入多少项(例如10项或10000项)才能使用批量处理?谢谢您的评论。这是一个家具存储库的数据库,所以我想它可以从1到50。我使用SQLServer2005。谢谢。你如何在数据库中插入1项,你能显示你的代码吗?或者你问如何进行插入?更新插入代码,谢谢。我不能使用xml,因为它是SQLServer2005数据库。谢谢。您可以使用它,但可能不会:XML在SQLServer2005中是有效的数据类型。谢谢您的回答。我会试试李尔林。就在最近,我正在使用.NET3.5。只有两到三个管理员可以进行多次插入,因此可以节省使用。再次感谢。