Обновление DataSet в приложении winform - PullRequest
0 голосов
/ 04 августа 2011

У меня есть некоторые трудности со следующим: у меня есть набор данных, который я хочу использовать для обновления базы данных, когда в gridView производится изменение значения.Набор данных исходит из следующего метода:

public static DataSet Display_all_members()
    {
        ds = new DataSet();
        try
        {
            string query = "SELECT date_to, last_name ,first_name , member_pay FROM  Member ";
            conS.Open();
          adapter = new SqlDataAdapter(query, conS);
            adapter.Fill(ds, "To_display"); 
        }
        catch (Exception r)
        {}
        finally
        {
            conS.Close();
        }
        return ds;
    }

В форме, которую я делаю

 ds2 = DAL.Display_all_members ();
 dataGridView1.DataSource = ds2;
 dataGridView1.DataMember = "To_display";

, теперь я получаю обновление и делаю следующее в форме

if (ds2.HasChanges() == true)
        {
            DAL.update(ds2);
        }

В методе

  public static void update(DataSet ki)
    {
           SqlCommandBuilder n = new SqlCommandBuilder(da);
                da.Update(ds);

    }

И это не работает.В чем проблема?Это ошибка: При обновлении не удалось найти TableMapping ['Table'] или DataTable 'Table'.

1 Ответ

0 голосов
/ 05 августа 2011

Это может быть просто опечатка, но ваш метод обновления использует две разные переменные - DataSet ki и da в вызове DataAdapter.Update ().

Попробуйте это:

protected void update(DataSet ds)
{
    da.Update(ds, 'To_display")
}

С DataAdapter DataTable и DataColumn Mappings (ADO.NET) :

"Если вы не укажете имя TableName или DataTableMapping при вызове метода Fill или Update методаDataAdapter, DataAdapter ищет DataTableMapping с именем «Таблица». Если этого DataTableMapping не существует, TableName объекта DataTable имеет значение «Таблица». "

Если вы используете тот же набор данных, который вы изначально заполнили,вы, вероятно, захотите указать имя таблицы там, где необходимо, чтобы избежать этой ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...