首页 > 解决方案 > 在数据库中添加了额外的列,但代码看不到它们

问题描述

我为此感到头疼...希望有人可以帮助我。

我有一个 Table Clienten 并创建了 3 个新列:

我刷新了数据库,删除了旧的 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;
             }
        } 

标签: c#visual-studioazure-mysql-database

解决方案


根据我的测试,我没有收到您说的错误。

您可以尝试以下步骤来添加额外的列并选择新数据。

首先,请使用以下 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;
        
        }

最后,我们可以看到以下按年龄排序的结果。

在此处输入图像描述


推荐阅读