none
Проблемы с DataGrid RRS feed

  • Вопрос

  • В общем суть такова. Начал работать с VS08 и C#. Уткнулся в такую проблему при работе с БД. 
    Все сделал как описано в http://msdn.microsoft.com/ru-ru/library/0f92s97z.aspx. 
    DataGrid все прекрасно отображается, строки добавляются. Но вот при редактировании существующей строки и нажатии сохранить вываливается ошибка "Для обновления требуется действительный UpdateCommand при передаче коллекции DataRow с измененными строками". Видимо не работает update в провайдере... Как победить это???? 

    using System; 
    using System.Collections.Generic; 
    using System.ComponentModel; 
    using System.Data; 
    using System.Drawing; 
    using System.Linq; 
    using System.Text; 
    using System.Windows.Forms; 

    namespace la03 

    public partial class Form1 : Form 

    public Form1() 

    InitializeComponent(); 


    private void booksBindingNavigatorSaveItem_Click(object sender, EventArgs e) 

    this.Validate(); 
    this.booksBindingSource.EndEdit(); 
    this.tableAdapterManager.UpdateAll(this.pRO_LIBDataSet); 



    private void Form1_Load(object sender, EventArgs e) 


    this.booksTableAdapter.Fill(this.pRO_LIBDataSet.books); 



    }
    • Перемещено Tagore Bandlamudi 2 октября 2010 г. 0:59 MSDN Forums consolidation (От:Visual Studio - отзывы и пожелания)
    19 июня 2009 г. 6:21

Ответы

  • А tableAdapter создавался мастером или программно кодом? Если мастером - посмотрите датасет на команду Update. Посмотрите также на SqlCommandBuilder. SqlDataAdapter theAdapter = new SqlDataAdapter(theCommand); SqlCommandBuilder theBuilder = new SqlCommandBuilder(theAdapter); Console.WriteLine(theBuilder.GetUpdateCommand().CommandText + "\n\n"); По моему при генерации updateCommand требуется еще и ключ на таблице.
    • Предложено в качестве ответа Igor Basmanov 3 августа 2009 г. 13:11
    • Помечено в качестве ответа Vitaly Zayko 7 августа 2009 г. 10:45
    3 августа 2009 г. 13:09

Все ответы

  • В общем суть такова. Начал работать с VS08 и C#. Уткнулся в такую проблему при работе с БД. 
    Все сделал как описано в http://msdn.microsoft.com/ru-ru/library/0f92s97z.aspx. 
    DataGrid все прекрасно отображается, строки добавляются. Но вот при редактировании существующей строки и нажатии сохранить вываливается ошибка "Для обновления требуется действительный UpdateCommand при передаче коллекции DataRow с измененными строками". Видимо не работает update в провайдере... Как победить это???? 
    Аналогичная проблема, и тотже вопрос, Как победить это???? 
    30 июля 2009 г. 20:11
  • А tableAdapter создавался мастером или программно кодом? Если мастером - посмотрите датасет на команду Update. Посмотрите также на SqlCommandBuilder. SqlDataAdapter theAdapter = new SqlDataAdapter(theCommand); SqlCommandBuilder theBuilder = new SqlCommandBuilder(theAdapter); Console.WriteLine(theBuilder.GetUpdateCommand().CommandText + "\n\n"); По моему при генерации updateCommand требуется еще и ключ на таблице.
    • Предложено в качестве ответа Igor Basmanov 3 августа 2009 г. 13:11
    • Помечено в качестве ответа Vitaly Zayko 7 августа 2009 г. 10:45
    3 августа 2009 г. 13:09