c# - 在数据库中添加了额外的列,但代码看不到它们
问题描述
我为此感到头疼...希望有人可以帮助我。
我有一个 Table Clienten 并创建了 3 个新列:
- DhrMevr
- 沃纳姆
- 阿赫特纳姆
我刷新了数据库,删除了旧的 DataSet 并为更新的数据库创建了一个新的 DataSet。但是...当我尝试在 C# 代码中读取 Clienten 表时,他没有看到新列。我错过了什么?
希望有人知道诀窍。
数据库和数据集中表列的打印屏幕。看起来 3 个额外的列已正确添加
这是代码....我收到错误:无效的列名“Achternaam”
private void FillCBClienten()
{
string query = "SELECT * from Clienten ORDER BY Achternaam ASC";
using (connection = new SqlConnection(connectionString))
using (SqlDataAdapter adapter = new SqlDataAdapter(query, connection))
{
DataTable clientenTable = new DataTable();
adapter.Fill(clientenTable);
clientenTable.Columns.Add("Naam", typeof(String), "DhrMevr + ' ' + Voornaam + ' ' + Achternaam");
cbClient.DisplayMember = "Naam";
cbClient.ValueMember = "Id";
cbClient.DataSource = clientenTable;
}
}
解决方案
根据我的测试,我没有收到您说的错误。
您可以尝试以下步骤来添加额外的列并选择新数据。
首先,请使用以下 sql 查询添加列。
alter TABLE Client
Add Email NVARCHAR (50)
其次,请重新添加数据集。
第三,请右键单击 TableAdapter 添加查询,如下所示:
然后,我们可以从 tableadapter 中获取数据表。
private void button1_Click(object sender, EventArgs e)
{
TestDataSetTableAdapters.ClientTableAdapter adapter = new TestDataSetTableAdapters.ClientTableAdapter();
DataTable table=adapter.GetDataOrderBy();
dataGridView1.DataSource = table;
}
最后,我们可以看到以下按年龄排序的结果。