Украинское сообщество программистов

Форум программистов » Программирование

C#.net обновление базы данных

(2 posts)
  1. подключение.... думаю тут все правильно...

    scsb = new SqlConnectionStringBuilder();
                    scsb.DataSource = @".\SQLEXPRESS";
                    scsb.IntegratedSecurity = true;
                    scsb.AttachDBFilename = @"C:\Documents and Settings\name\Мои документы\Visual Studio 2008\Projects\Link_base\Link_base\LinkBase.mdf";
                    connection = new SqlConnection(scsb.ConnectionString);
                    connection.Open();

    конструктор класа

    dataGridView1.DataSource = bindingSource1;

    заполнение таблицы dataGridView1 из БД с помощью DataTable

    
    adapter = new SqlDataAdapter(cmd, connection);
                    builder = new SqlCommandBuilder(adapter);
                    table = new DataTable();
                    table.Locale = System.Globalization.CultureInfo.InvariantCulture;
                    adapter.Fill(table);
                    bindingSource1.DataSource = table;
    

    далее самое интересное.... не могу обновить БД (иногда!!!)

    
    adapter.Update((DataTable)bindingSource1.DataSource);
    или я еще пробовал так
    adapter.Update(table);
    

    короче и так и так выпадает иногда!! ошибка... иногда после того как я второй раз хочу БД обновить... иногда после третьего раза...
    ошибка вот
    "Dynamic SQL generation for the UpdateCommand is not supported against a SelectCommand that does not return any key column information."
    еще буду признателен если мне обьяснят что такое SqlCommandBuilder(adapter); и что он делает... в мсдн читал но не понял...

  2. вот ответ на мой вопрос....

    [SRC c#]adapter.UpdateCommand = new SqlCommand("Update " + label1.Text + " set Link = @Link Where Link = @oldLink", connection);

    SqlParameter parameter = new SqlParameter("@Link", SqlDbType.VarChar);
    parameter.SourceColumn = "Link";
    parameter.SourceVersion = DataRowVersion.Current;
    adapter.UpdateCommand.Parameters.Add(parameter);

    SqlParameter parameter1 = new SqlParameter("@oldLink", SqlDbType.VarChar);
    parameter1.SourceColumn = "Link";
    parameter1.SourceVersion = DataRowVersion.Original;
    adapter.UpdateCommand.Parameters.Add(parameter1);
    [/SRC]
    это только команда апдейт....
    все остальные можно делать так....
    [SRC c#]
    adapter.InsertCommand = new SqlCommand("Insert into " + TableName + " (Link) Values (@Link)", connection);
    adapter.InsertCommand.Parameters.Add("@Link", SqlDbType.VarChar, 0, "Link");
    [/SRC]

RSS экспорт этой темы

Отправить сообщение

Регистрация или вход.

Написать без регистрации

(обязательно)


(обязательно)

На форуме запрещается:

  • Публиковать вакансии, для этого есть специальный раздел.
  • Нецензурная брань.
  • Реклама или продвижение товаров и услуг, не имеющих отношения к теме обсуждения.

Навигация


Форумы

Зарплатная анкета:

чистыми, в экв. $ США по курсу

интернет магазин бытовая техника магазин Laptoper