Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

как добавить в таблицу колонку с данными?

44K
29 сентября 2009 года
KuMa1104
9 / / 16.04.2009
ADO.NET
Здраствуйте!
Столкнулся с проблемой.
Опишу всё по частям.
заданы переменные
 
Код:
SqlConnection thisConnection;
        SqlCommandBuilder thisBuilder;
        DataSet thisDataSet;
        SqlDataAdapter custAdapter;

Cоздаём в DataSet таблицу и загружаем туда данные получаем таблю с 3-мя столбцами и множеством строк
Код:
thisConnection = new SqlConnection(
                @"Data Source=.\SQLEXPRESS;" +
                @"AttachDbFilename='C:\SQL Server 2000 Sample Databases\NORTHWND.MDF';" +
                @"Integrated Security=True;Connect Timeout=30;User Instance=true");

            thisDataSet = new DataSet();
         
            custAdapter = new SqlDataAdapter(
                 "SELECT CustomerID , CompanyName , Address FROM Customers", thisConnection);
                       
            thisBuilder = new SqlCommandBuilder(custAdapter);
            custAdapter.FillSchema(thisDataSet, SchemaType.Source);
            custAdapter.Fill(thisDataSet, "Customers");
            //DataColumn[] keys = new DataColumn[1];
            //keys[0] = thisDataSet.Tables["Customers"].Columns["CustomerID"];
            //thisDataSet.Tables["Customers"].PrimaryKey = keys;

Теперь необходимо дополнительно из тойже самой бызы данных и находящейся в неи таблице, загрузить ещё несколько имеющихся там столбцов.
Т.е. хочу загружать данные не все сразу а по мере необходимости, я пробовал разные варианты.
В частности самый простой.
 
Код:
custAdapter = new SqlDataAdapter("SELECT CustomerID ,ContactName , ContactTitle , City  FROM Customers",thisConnection);
           
            //custAdapter.MissingSchemaAction = MissingSchemaAction.Add;
           
            thisBuilder = new SqlCommandBuilder(custAdapter);
           
            custAdapter.Fill(0,thisDataSet.Tables["Customers"].Rows.Count,thisDataSet.Tables["Customers"]);

В итоге данные данные будут добавлены в конец табл.

Связано с тем что, как я понимаю не задан общий ключ.
Я пробовал эксперементировать с Primary Key и свойствами

custAdapter.MissingSchemaAction
custAdapter.MissingMappingAction

Но результат либо различные исключения, в основном
(Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.) и др. в зависимости от тог что я делал.

Подскажите правильный выход,что я делал не так?
Как добавить в таблицу колонку с данными?????????
241
28 октября 2009 года
Sanila_san
1.6K / / 07.06.2005
Я бы предложил просто загружать в датасет все данные сразу, всё равно ведь их придётся туда загружать. А потом уже просто отображать его в DataGridView по мере необходимости.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог