Member 13858616 Ответов: 1

Массовое копирование в таблицу SQL из представления сетки.


Всем Привет,

На самом деле у меня есть один Gridview, и у меня есть определенные значения в сетке. Мой вид сетки имеет более 30 столбцов(также строк), то есть он содержит даты определенного месяца.

Поэтому я создал одну таблицу в своем SQL с тем же именем столбца, что и в моем представлении сетки.

Теперь я хочу скопировать все свои записи в таблицу данных(SQL) из представления сетки.


Gridview1----- - >tbl.[date_register].

Что я уже пробовал:

Я попробовал это сделать, используя циклы for и запрос insert. Но все же я должен ввести все свои 31 столбец в запрос. Итак, есть ли какой-либо способ массовой загрузки или массовой загрузки значений из представления сетки в таблицу SQL?

Я имел в виду любой способ без использования for loops и insert query?
пожалуйста, помогите мне...

1 Ответов

Рейтинг:
6

Eric Lynch

Это действительно зависит от того, какие данные вы используете в качестве источника данных для вашего представления сетки.

Методы SqlBulkCopy (System.Data.SqlClient)[^]

Если это один из типов данных, принятых WriteToServer методы у вас все заданы. В противном случае, если это какая-то коллекция, вы, вероятно, можете использовать LINQ Select чтобы перейти в один из этих типов.

Без дополнительной информации о вашем источнике данных я не могу быть более конкретным.


Member 13858616

Спасибо Эрику за вашу ментальность помощи.. Мои данные были бы такими.

Смена Понедельник(1/2/2018) Вторник(2/2/2018) Среда(3/2/2018) Четверг(4/2/2018)...и т. д
-------------------------------------------------------------------------------------
1 A B C D
2 E F G H
3 I G K L

Мои данные сетки были бы такими.. Итак, есть таблица со всеми этими полями, так что я могу просто массово скопировать ее в таблицу?

Eric Lynch

Its more important that I understand the data type used to populate your grid view than it is to know the actual data. Generally, it is uncommon for a grid view to be populated directly, instead it is normally bound to a data source (DataTable, List<t>, etc.). For example, if its bound to a DataTable, this data type can be passed directly (as a parameter) to the WriteToServer method. If it's bound to a List<t>, its comparatively easy to use a LINQ Select/ToArray to create an array of DataRow, which can also be passed directly (as a parameter) to the WriteServer method. If it is neither of these cases, then I would need to understand EXACTLY how you populate the grid view to suggest a best course of action. I would also need the fully qualified name of the data type for the grid view (e.g. System.Windows.Forms.DataGridView) so that we don't waste time. Within the .NET framework, there are a few different ways to represent a grid.

Member 13858616

На самом деле это не приложение windows form, а веб-приложение. И моя сетка не заполняется непосредственно из каких-либо источников данных. Некоторые данные берутся из одной из моих конечных таблиц, и она делает некоторые манипуляции с ней, а затем некоторые данные генерируются в сетке. Таким образом, тип данных подобен тому, что мы можем рассматривать его как строку для всех полей.

Eric Lynch

В таком случае, я бы заполнить систему.Данных.Объект DataTable, и вызвать метод System.Данных.Sqlclient как.SqlBulkCopy.WriteToServer передает это как параметр. Я бы предложил больше помощи, но вы все еще не поделились типом данных для сетки. Сказав мне, что это веб-приложение сужает его (несколько), но у меня больше нет времени гадать.

Вот пример того, как создать и использовать DataTable…

https://msdn.microsoft.com/en-us/library/ex21zs8x(v=против 110).aspx