Это было некоторое время, так как я сделал Python, но я полагаю, что можно получить доступ к globals и местным жителям вызывающей стороны через traceback.
Вы можете вызвать .WriteXML ()
в DataSet и сбросить его в базу данных за одну вставку.
Используйте команду InsertCommand SqlDataAdapter , чтобы определить свой запрос Insert. Затем вызовите метод обновления DataAdapter с вашим набором данных в качестве параметра, чтобы он протолкнул данные.
Что-то вроде:
Dim DA As SqlDataAdapter = New SqlDataAdapter
Dim Parm As New SqlParameter
DA.InsertCommand = New SqlCommand("Insert Into tbl1(fld0, fld1, fld2) Values(@fld0, @fld1, @fld2)", conn)
Parm = DA.InsertCommand.Parameters.Add(New SqlParameter ("@fld0", NVarChar, 50, "fld0"))
Parm = sqlDA.InsertCommand.Parameters.Add(New SqlParameter ("@fld1", SqlDbType.NVarChar, 50, "fld1"))
Parm = sqlDA.InsertCommand.Parameters.Add(New SqlParameter ("@fld2", SqlDbType.NVarChar, 50, "fld2"))
DA.Update(dataset1, "tbl1")
В SQL Server 2008 вы можете использовать Табличные параметры :
Dim sc As New SqlCommand(
"INSERT INTO MyNewTable (field1, field2,...)"&
"SELECT field1, field2,... FROM @MyTable;", MyDBConnection)
sc.Parameters.AddWithValue("@MyTable", MyDataset)
sc.ExecuteNonQuery()