Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > DataTable to DataBase


Автор: cupper 7.8.2010, 18:49
В начале через сериализацию из Xml восстанавливаю таблицу в DataTable, затем эту таблицу нужно слить в БД (т.е. провести restore database). Так вот как правильно сливать данные из DataTable в DataBase ?

Автор: Springtime 9.8.2010, 09:03
Код

Dim objDT As System.Data.DataTable
Dim objDR As System.Data.DataRow

Private
Sub Page_Load(s As Object, e As EventArgs)
objDT = Session(
"Cart")
dg.DataSource = objDT
dg.DataBind()
End
Sub

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim nwind As New SqlConnection("connection info")
Dim custsInsCmd As SqlClient.SqlCommand
Dim custRow As DataRow
Dim sql As String
custsInsCmd = nwind.CreateCommand()
For Each custRow In objDT.Rows
sql = "INSERT INTO rma_items (part, rma_id) VALUES ('" & custRow("Product") & "', '1')"
custsInsCmd.CommandText = sql
custsInsCmd.ExecuteNonQuery()
nwind.Close()
Next
End Sub


Автор: A5uKa 9.8.2010, 11:22
Если не ошибаюсь, то можно через адаптер ...
Код

    def dataSet = DataSet();
    using (connection = SqlConnection("..."))
    {
        connection.Open();
        def adapter = SqlDataAdapter(SqlCommand(" Select... " , connection));
        _=adapter.Fill(dataSet);
        adapter.UpdateCommand = SqlCommandBuilder(adapter).GetUpdateCommand();
        adapter.Update(dataSet);
    }

Автор: cupper 9.8.2010, 12:23
Цитата(A5uKa @ 9.8.2010,  11:22)
Если не ошибаюсь, то можно через адаптер ...
Код

    def dataSet = DataSet();
    using (connection = SqlConnection("..."))
    {
        connection.Open();
        def adapter = SqlDataAdapter(SqlCommand(" Select... " , connection));
        _=adapter.Fill(dataSet);
        adapter.UpdateCommand = SqlCommandBuilder(adapter).GetUpdateCommand();
        adapter.Update(dataSet);
    }

а в чем отличие адаптера от построчного копирование DataTable в БД ?? ведь в адаптере также нужно прописить команду INSERT  c параметрами ? по сути она наверно тоже самое выполняет.

Пока остановился на варианте восстановление БД из DataTable:
1) Чистим всю таблицу в БД через DELETE
2) построчно для DataTable делаем Insert...

Автор: A5uKa 9.8.2010, 12:28
Разве что оно само строит Update или Insert комманды ...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)