Добрый вечер всем Вычитал что переименовывать поля в DataSet можно с помощь DataTableMapping... создал простую таблицу...два поля
| Код | private static void TableMappingCatalogs(SqlDataAdapter dataAdapter) { try { DataColumnMapping[] mappedColums ={ new DataColumnMapping ("id_catalog","Kod"), new DataColumnMapping ("name","Model") }; DataTableMapping usersTableMapping = new DataTableMapping("Catalogs", "Catalogs", mappedColums); dataAdapter.TableMappings.Add(usersTableMapping);
} catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
|
потом вывожу все в датагрид, там все нормально имена показывает "Kod","Model"...все работает
| Код | using (SqlConnection connection = new SqlConnection(connectString)) { SqlDataAdapter dataAdapter1 = new SqlDataAdapter(new SqlCommand(sql , connection));
DataSet ds = new DataSet(); ds.Tables.Add("Catalogs"); TableMappingCatalogs(dataAdapter1); dataAdapter1.Fill(ds.Tables["Catalogs"]); // Assign the DataSet as the DataSource for the BindingSource. BindingSource bs = new BindingSource(); bs.DataSource = ds.Tables["Catalogs"].DefaultView; bindingNavigator1.BindingSource = bs; dataGridView1.DataSource = bs;
|
делаю кнопку которая добавляет хочу добавить запись в БД по нажатию кнопки
| Код | private void button1_Click(object sender, EventArgs e) { string sql1 = AddRecords(); SqlDataAdapter dataAdapter = new SqlDataAdapter(sql1,connectString); DataSet ds = new DataSet(); dataAdapter.Fill(ds); dataAdapter = new SqlDataAdapter(sql, connectString); ds.Tables.Add(tabl); dataAdapter.Fill(ds.Tables[tabl]); BindingSource bs = new BindingSource(); bs.DataSource = ds.Tables[tabl].DefaultView; dataGridView1.DataSource = bs; }
|
сама функция AddRecords() генерирует запрос ....| Код | string query = string.Format("INSERT INTO {0}(", this.Text); //запрос на добавление for (int i = 1; i <= dataGridView1.Columns.Count; i++) { query += dataGridView1.Columns[i - 1].HeaderText.ToString() + ","; }
query = query.Remove(query.Length - 1);
query += ") VALUES (";
for (int i = 1; i <= dataGridView1.Columns.Count; i++) { query += "'" + panel1.Controls["textBox" + i].Text + "',";
}
query = query.Remove(query.Length - 1); query += ")"; return query;
|
в итоге получаю ошибку: Additional information: Invalid column name 'Kod'. Invalid column name 'Model'.
Помогите решить эту проблему... |