Обновление таблицы mysql выдает ошибку

#c# #mysql

#c# #mysql

Вопрос:

у меня есть этот код, и он выдает мне эту ошибку, я очень старался решить это, но мне не везет. Этот метод используется для обновления таблицы из mysql путем предоставления инструкции select, имени таблицы и набора данных. Ошибка заключается в том, что «Обновлению не удается найти TableMapping[‘tblapartments’] или DataTable ‘tblapartments'».

 public bool UpdateDatabase(string SelectStat, string tablename, DataSet dataset)
{
    try
    {
        MySqlDataAdapter da = new MySqlDataAdapter(SelectStat, _conn);
        MySqlCommandBuilder MYCB = new MySqlCommandBuilder(da);
        DataSet ds = dataset;
        da.MissingSchemaAction = MissingSchemaAction.AddWithKey;

        da.Update(ds, tablename);
        MySqlConnection.ClearAllPools();
        return true;
    }
    catch (Exception ex)
    {
        return false;
    }

}
  

это весь метод, используемый для вызова метода.

  DataTable dt = (DataTable)dtgApartList.DataSource;
 DataSet ds = GlobalVariables.Adap.GetTableCus("SELECT NameNo, MaintenanceFee, AdminFee  FROM tblapartments WHERE BuildingID = '"   cmbBuildingName.SelectedValue.ToString()   "'");
 ds.Tables[0].Merge(dt, false);
 GlobalVariables.Adap.UpdateDatabase("SELECT NameNo, MaintenanceFee, AdminFee  FROM tblapartments WHERE BuildingID = '"   cmbBuildingName.SelectedValue.ToString()   "'", "tblapartments", ds); 
  

Комментарии:

1. Можете ли вы перечислить код, который вызывает это?

2. Я редактирую, чтобы показать вам, как я вызываю метод

Ответ №1:

Я понял, что я делал неправильно, мне нужно было сопоставить таблицы, вот исправленный код

 public bool UpdateDatabase(string SelectStat, string tablename, DataSet dataset)
{
    try
    {
        MySqlDataAdapter da = new MySqlDataAdapter(SelectStat, _conn);
        MySqlCommandBuilder MYCB = new MySqlCommandBuilder(da);
        DataSet ds = dataset;
        da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
        //Added this
        ITableMapping testing = da.TableMappings.Add(tablename,"Table");
        da.Update(ds, tablename);
        MySqlConnection.ClearAllPools();
        return true;
    }
    catch (Exception ex)
    {
        return false;
    }

}