1

これと同じ 1 行のコードを使用して、特定のフィールドをデータベースから変数に保存しています。

variable = Convert.ToType(dt.Rows[0]["[Column Name]"]);

問題は、この迷惑な列が存在しないというサーバーエラーが発生することです。これは、「Select * From Table」のような単純な SQL クエリを使用するさまざまなテーブルとさまざまなフィールドで発生しています。列名が正しいことを何度も確認しましたが、列名にスペースを入れて試してみましたが、何も役に立たないようです。

これを引き起こしている原因と解決方法について何か考えはありますか? スタック トレースは次のとおりです。

[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

ありがとう。

4

3 に答える 3

5

括弧 [ ] を含めたため、このエラーが発生していました。角括弧を削除すると、機能するはずです

使用する

dt.Rows[0]["Column Name"]

それ以外の

dt.Rows[0]["[Column Name]"]

あなたの場合

dt.Rows[0]["Long MSDS Update"]
于 2013-01-11T18:16:05.370 に答える
1

以下のコードを実行し、出力が期待されることを確認します。

Debug.WriteLine(dt.TableName);
foreach(DataColumn column in dt.Columns)
{
    Debug.WriteLine("\t" + column.ColumnName);
}
于 2013-01-11T18:01:53.787 に答える
1

テストをラップする

if (dt.Columns.Contains("SomeColumnName"))
{
}
else
{
    // Danger Will Robinson!. Danger!
}
于 2013-01-11T18:16:14.507 に答える