C# 向SQL Server 2008 R2表中添加了一些列,但当网页查询该表时,该列不会显示

C# 向SQL Server 2008 R2表中添加了一些列,但当网页查询该表时,该列不会显示,c#,sql-server-2008-r2,C#,Sql Server 2008 R2,我在SQLServer2008R2中向表中添加了一些列。然后,我将一些默认值放入这些列中。然后,我用一个查询选择了这些列,该查询在输出框中生成了预期的结果。我的问题是当我使用以下代码行时 if (ds.Tables[0].Rows[0]["abc"].ToString().Trim() == "") { this.abcHyperLink.ForeColor = Color.FromArgb(100, 100, 100); } else { this.abcHyperLink.Na

我在SQLServer2008R2中向表中添加了一些列。然后,我将一些默认值放入这些列中。然后,我用一个查询选择了这些列,该查询在输出框中生成了预期的结果。我的问题是当我使用以下代码行时

if (ds.Tables[0].Rows[0]["abc"].ToString().Trim() == "")
{
    this.abcHyperLink.ForeColor = Color.FromArgb(100, 100, 100);
}
else
{
   this.abcHyperLink.NavigateUrl = ds.Tables[0].Rows[0]["abc"].ToString();
}
要查询新列,它将生成以下错误消息

列“abc”不属于表

当我对旧列使用相同的代码时,代码工作正常并检索正确的数据

为什么我不能查询新列,但可以查询旧列?在使用代码查询新列之前,是否还需要执行其他操作?非常感谢你的帮助

编辑:

用于检查是否添加了新列的SQL查询为

Select [abc],[xyy]
from [database].[dbo].[table]
编辑2: 应用程序调用

public DataSet GetDataSet()
{
    string sql = "use [name of db] exec sp_search_by '" + this.searchString + "'";
    DataLayer dataLayer = new DataLayer();
    return dataLayer.GetDataSet(sql, "BCITConn");
}
哪个叫

public DataSet GetDataSet(string sql, string db)
{
    string providerName = ConfigurationManager.ConnectionStrings[db].ProviderName;
    DbProviderFactory factory = DbProviderFactories.GetFactory(providerName);
    DbConnection dbConnection = new SqlConnection();
    try
    {
        dbConnection = factory.CreateConnection();
        dbConnection.ConnectionString = ConfigurationManager.ConnectionStrings[db].ToString();
        DbCommand dbCommand = factory.CreateCommand();
        dbCommand.CommandText = sql;
        dbCommand.CommandTimeout = 2000;
        dbCommand.Connection = dbConnection;
        DbDataAdapter dbDataAdapter = factory.CreateDataAdapter();
        dbDataAdapter.SelectCommand = dbCommand;
        DataSet dataSet = new DataSet();
        dbDataAdapter.Fill(dataSet);
        dbConnection.Close();
        dbConnection.Dispose();
        return dataSet;
    }
    catch (DbException ex)
    {
        Console.WriteLine(ex.ToString());
    }
    finally
    {
        if (dbConnection != null)
        {
            dbConnection.Close();
            dbConnection.Dispose();
        }
    }
    return null;
}
哪个使用

<connectionStrings>
    <add name="BCITConn" connectionString="Data Source=[correct]; Initial Catalog=[name of db];User ID=[correct];Password=[correct]; Max Pool Size=1000000; pooling=true" providerName="System.Data.SqlClient"/>
</connectionStrings>

从web配置中,我能想到的唯一一件事是您正在查询的列没有被呈现,可能您在查询中没有提到您的列。

您使用的是什么查询?你能把它放在这里吗?我不明白为什么它没有出现。假设我用C代码查询一个旧列,得到“123”。我将sql server条目更新为“456”,然后再次查询该列。我会立即得到“456”。我只是不明白为什么代码适用于每一个旧列,但不适用于我新添加的列您是否在代码中的SELECT语句中添加了新列?如果你有,没有理由它不应该出现在那里。我可以看一下查询数据库和获取结果的全部代码吗?我没有使用代码添加新列。我使用了SQLServer2008R2接口。我单击了要添加列的表。在其上单击鼠标右键,然后选择“设计”,并以这种方式添加柱。我应该改用ALTERTABLE吗?不,不是这样,我想知道您是如何在应用程序代码中使用C进行查询的。如何生成数据集dsI已经添加了您请求的代码。抱歉耽搁了。我在家里查不到密码