none
this.tableAdapterManager.UpdateAll(this.northwindDataSet) RRS feed

  • Общие обсуждения

  • Как сохранить изменения в БД ?

    Пробовал создать стандартный проект WF и подключиться к Northwind.sdf, создаю DataSet, кидаю таблицу на форму, запускаю отладку, после редактирования таблицы, жму сохранить(кнопку с дискеткой, которую создал конструктор), но в БД ни чего не меняется...   

    • Изменен тип I.Vorontsov 12 июля 2010 г. 8:22
    • Перемещено SachinW 2 октября 2010 г. 0:18 MSDN Forums Consolidation (От:SQL Server для разработчиков)
    6 июля 2010 г. 19:27

Все ответы

  • Пробовал TableAdapter.Update и TableAdapter.Insert результат тот же..LINQ to SQL использовать не могу т.к. пишу для WM ..какие ещё способы есть? 

    7 июля 2010 г. 20:05
  • Перед сохранением dataSetName.TableName.GetChanges() содержит какой-нибудь набор данных?
    Модератор
  • Строка в DataSet добавляется(она появляется в гриде).. а как узнать содержимое dataSetName.TableName.GetChanges()? 
  • DataTable table_with_changed_data = dataSetName.TableName.GetChanges();

    if (table_with_changed_data != null)

    { // Значит есть изменения

     }

     

    У UpdateCommand и InsertCommand вообще текст есть?

    Connection сопоставлен?

     

    8 июля 2010 г. 18:01
    Модератор
  • Изменения есть.. думаю проблема с Connection.. как его сопоставить? 
    8 июля 2010 г. 21:19
  • Что содержится в:

    1. TableAdapterName.UpdateCommand.Connection?

    2. TableAdapterName.UpdateCommand.CommandText?

    И тоже самое про InsertCommand и DeleteCommand

     

    Модератор
  • У меня там нет UpdateCommand,InsertCommand... есть только просто TableAdapterName.Update,TableAdapterName.Delete,TableAdapterName.Connection... и как узнать их содержимое я не знаю...

    TableAdapterName.Connection.ConnectionString возвращает просто "Data"

    Это о чём-то говорит?

     

     

  • Ставишь брейкпоинт в коде пере сохранением. Правой правой кнопкой мыши щелкаешь на TableAdapter, и во всплывающем меню выбираешь QuickWatch (ну или нажимаешь CTRL-D, Q).

    Можешь перед сохранением вывести на консоль:

    Console.WriteLine(TableAdapterName.UpdateCommand.CommandText)

    и в окне Output в VS посмотреть что вывелось.

    Модератор
  • У меня TableAdapterName не содержит определение для UpdateCommand.. я на C# пишу...
    9 июля 2010 г. 11:29
  • Хорошо. Тормознул. Задумался об DataAdapter'e.
    Если правой кнопкой щелкнуть на DataSet в Солюшен Эксплорере выбрать
    Open With (второй пункт сверху) и там выбрать XML (Text) Editor. и
    изучить XML. Там есть сгенерированные InsertCommand, UpdateCommand и
    DeleteCommand?
     
    9 июля 2010 г. 12:38
    Модератор
  • Да есть DELETE, INSERT, SELECT и UPDATE...

    10 июля 2010 г. 10:23
  • Делал приложение вот по этому докладу: http://www.techdays.ru/videos/1009.html

    Но у него там тоже изменения не сохраняются.. я так и не понял зачем он тогда делал форму для редактирования.. или он сам не заметил, что изменения не сохраняются в самой БД ... 

    10 июля 2010 г. 10:34
  • Да есть DELETE, INSERT, SELECT и UPDATE...


    Текст команд покажи.
    11 июля 2010 г. 9:17
    Модератор
  • Там еще его примеры кода лежат. В них тоже не работает сохранение?
    11 июля 2010 г. 9:22
    Модератор
  • <

     

    InsertCommand>

    <

     

    DbCommand CommandType="Text" ModifiedByUser="false">

    <

     

    CommandText>INSERT INTO [Categories] ([Category Name], [Description], [Picture]) VALUES (@p1, @p2, @p3)</CommandText>

    <

     

    Parameters>

    <

     

    Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@p1" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="Category Name" SourceColumnNullMapping="false" SourceVersion="Current" />

    <

     

    Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@p2" Precision="0" ProviderType="NText" Scale="0" Size="0" SourceColumn="Description" SourceColumnNullMapping="false" SourceVersion="Current" />

    <

     

    Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Binary" Direction="Input" ParameterName="@p3" Precision="0" ProviderType="Image" Scale="0" Size="0" SourceColumn="Picture" SourceColumnNullMapping="false" SourceVersion="Current" />

    </

     

    Parameters>

    </

     

    DbCommand>

    </

     

    InsertCommand>

     

     

    11 июля 2010 г. 12:43
  • В примере тоже не работает..там прямо в докладе видно, когда он таблицу снова открывает все изменения исчезают... 

    11 июля 2010 г. 12:49
  • Только INSERT?

    Скорее всего в таблице не создан Primary Key. Варианта 2:

    1. Создай ключ

    ALTER TABLE [Categories] 
    ADD CONSTRAINT pk_Categories PRIMARY KEY ([Category Name])
    
    

    и пересоздай DataSet;

    2. Руками в датасете пропиши команды.

    12 июля 2010 г. 5:17
    Модератор
  • Возможно имеет смысл отписаться Сергею Звездину, который доклад выкладывал.
    12 июля 2010 г. 5:23
    Модератор
  • С SELECT и UPDATE аналогично.. и ключ в таблице уже есть...

    Дело не только в докладе.. я перепробовал уже все примеры которые нашёл на MSDN.. ни один не работает...

    12 июля 2010 г. 20:21
  • Выложи проект где-нибудь.
    13 июля 2010 г. 5:45
    Модератор
  • Люди добрые похожая проблема. Какие бы действия не делал при вызове Update срабатывает только добавление новых строк, а изменение и удаление строк игнорируется.
    21 марта 2011 г. 15:49