Является ли SqlDataAdapter.FillSchema («SELECT * FROM MyTable», SchemaType.Source) дорогим методом? - PullRequest
0 голосов
/ 12 октября 2018

Часто при добавлении данных в таблицу я использую метод SqlDataAdapter.FillSchema для создания таблицы, которую я затем заполняю новыми строками.Одним из параметров для SqlDataAdapter является оператор Select.Этот оператор выбора не имеет критериев, поэтому обычно при запуске он возвращает все строки в таблице.Разве FillSchema как-то не запрашивает все строки и просто получает информацию о схеме?Должен ли я добавить критерии, такие как «ГДЕ 1 = 0», чтобы он не возвращал строки?Это действительно плохая практика, и мне лучше использовать SQLCommand и оператор Insert?

    Using cn As New SqlConnection("MyConnectionString"),
          da As New SqlDataAdapter("SELECT * FROM MyTable", cn),
          cb As New SqlCommandBuilder(da),
          t As New DataTable

        da.FillSchema(t, SchemaType.Source)

        Dim r = t.NewRow

        r("Field1") = 1
        r("Field2") = 2

        t.Rows.Add(r)
        da.Update(t)

    End Using
...