2010-05-03 3 views
0

У меня есть приложение C# Winforms, которое подключается к базе данных SQL Server 2005. Форма, с которой я сейчас работаю, позволяет пользователю вводить большое количество различных типов данных в различные текстовые поля, comboboxes и DataGridView для вставки в базу данных. Все это представляет собой один конкретный тип машины, а данные распределены примерно на девять таблиц.C# Winforms ADO.NET - DataGridView INSERT, начинающийся с нулевых данных

Проблема заключается в том, что мой DataGridView представляет собой тип данных, которые могут или не могут быть добавлены в базу данных. Таким образом, когда создается DataGridView, он пуст и не привязывается к базе данных, поэтому данные не могут быть введены. Мой вопрос: должен ли я создать таблицу с жестко закодированными именами полей, представляющими способ, которым данные выглядят в базе данных, или есть способ просто заполнить имена столбцов без данных, чтобы пользователь мог ввести его, если они как? Мне не нравится идея жесткого кодирования их в случае изменения схемы базы данных, но я не уверен, как еще справиться с этой проблемой.

+0

Что вы имеете в виду Он заполнен данными, поступающими из таблицы? Будет ли сетка разрешать пользователям обновлять/вставлять/удалять данные из указанной таблицы? – Ken

+0

Форма предназначена исключительно для выполнения запроса INSERT, поэтому DataGridView запускается пустым и не привязывается к базе данных. Он не отображает никаких существующих данных; он предназначен для добавления данных, но полностью необязателен. –

ответ

1

Вы можете запросить базу данных для имен столбцов, если вы используете SqlDataReader, вы можете использовать ее GetSchemaTable. Вот некоторые примеры кода для этого: «может или не может быть добавлена ​​в базу данных»

http://support.microsoft.com/kb/310107

+0

Отлично! Это то, что мне нужно. Спасибо за вашу помощь. –