C# 列[X]不属于表服务器错误-为什么?

C# 列[X]不属于表服务器错误-为什么?,c#,asp.net,mysql,sql-server,sql-server-2008,C#,Asp.net,Mysql,Sql Server,Sql Server 2008,我一直在使用同一行代码将数据库中的特定字段保存到变量中 variable = Convert.ToType(dt.Rows[0]["[Column Name]"]); 问题是我得到这个恼人的专栏不存在服务器错误。这在不同的表和不同的字段中发生,sql查询非常简单,如Select*From Table。 我无数次检查列名是否正确,我尝试在列名中使用空格,但没有-似乎没有任何帮助 知道是什么原因造成的吗?怎么解决? 以下是堆栈跟踪: [ArgumentException: Column '[Lon

我一直在使用同一行代码将数据库中的特定字段保存到变量中

variable = Convert.ToType(dt.Rows[0]["[Column Name]"]);
问题是我得到这个恼人的专栏不存在服务器错误。这在不同的表和不同的字段中发生,sql查询非常简单,如Select*From Table。 我无数次检查列名是否正确,我尝试在列名中使用空格,但没有-似乎没有任何帮助

知道是什么原因造成的吗?怎么解决? 以下是堆栈跟踪:

[ArgumentException: Column '[Long MSDS Update]' does not belong to table Table.]
System.Data.DataRow.GetDataColumn(String columnName) +5253191
System.Data.DataRow.get_Item(String columnName) +13
SiteMaster.msds_update() in
c:\Users\nravid\Desktop\School\Project\PhillipsSite\Site.master.cs:198
SiteMaster.master_Page_PreLoad(Object sender, EventArgs e) in c:\Users\nravid\Desktop\School\Project\PhillipsSite\Site.master.cs:92
System.EventHandler.Invoke(Object sender, EventArgs e) +0
System.Web.UI.Page.OnPreLoad(EventArgs e) +121
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +699

谢谢。

运行下面的代码,确保输出是预期的

Debug.WriteLine(dt.TableName);
foreach(DataColumn column in dt.Columns)
{
    Debug.WriteLine("\t" + column.ColumnName);
}

运行下面的代码,确保输出是预期的

Debug.WriteLine(dt.TableName);
foreach(DataColumn column in dt.Columns)
{
    Debug.WriteLine("\t" + column.ColumnName);
}

出现此错误是因为包含了括号[]。拆下方括号,它应该可以工作

使用

而不是

dt.Rows[0]["[Column Name]"]
就你而言

dt.Rows[0]["Long MSDS Update"]

出现此错误是因为包含了括号[]。拆下方括号,它应该可以工作

使用

而不是

dt.Rows[0]["[Column Name]"]
就你而言

dt.Rows[0]["Long MSDS Update"]
把测试包起来

if (dt.Columns.Contains("SomeColumnName"))
{
}
else
{
    // Danger Will Robinson!. Danger!
}
把测试包起来

if (dt.Columns.Contains("SomeColumnName"))
{
}
else
{
    // Danger Will Robinson!. Danger!
}

指定的列名拼写是否正确?您还应该仔细检查查询是否从正确的表中检索。指定的列名拼写是否正确?您还应该仔细检查您的查询是否从正确的表中检索。Visual Studio视图->输出或Ctrl+W,O中的输出窗口。然后是的,它打印出的列名称与数据库中的列名称完全相同,与代码中的列名称完全相同。Visual Studio视图->输出或Ctrl+W,O中的输出窗口是的,它打印出的列名称与数据库中的列名称完全相同,与代码中的列名称完全相同。该死!该死的。::+1早上醒来发现你关于stackoverflow的问题得到了回答。。。感觉像圣诞节的早晨:-该死!该死的。::+1早上醒来发现你关于stackoverflow的问题得到了回答。。。感觉像圣诞节的早晨:-