2

我正在用 C# 编码,但有一个我实际上无法解决的错误,也许有人可以在这里帮助我!

对不起我的英语,我不是母语人士!

这是我的代码:

public List<Materiel> GetAllTubas()
{
 DataAccess.Oradb getListTubas = new DataAccess.Oradb();
 getListTubas.GetTubaDatabase(null);

 List<Materiel> ListMateriel = new List<Materiel>(); 

 foreach(DataRow row in dt.Rows)  //the name "dt" does not exist in the current context     {
    var myListTuba = new Materiel();
    myListTuba.Nom = row["nom_tuba"];
    ListMateriel.Add(myListTuba);
 }

 return ListMateriel;
}

在这个方法中,我调用了另一个方法 GetTubaDatabase ;连接到数据库和 SQL 查询,它返回给我 DataTable dt 填充我的查询结果。现在我想通过我的数据表创建一个列表,但出现错误:当前上下文中不存在名称“dt”(大约翻译自我的母语)

我认为这不是一个巨大的错误,但我无法解决它,也不知道我该如何解决。

希望你能帮助我!

非常感谢 !

4

3 回答 3

5

您需要首先将返回值分配给一个变量:

DataTable dt = getListTubas.GetTubaDatabase(null);

然后您可以稍后在代码中使用它。执行方法不会神奇地创建变量。

于 2013-11-04T13:31:36.370 回答
1

我认为您忘记将数据分配给您的数据表可能您应该更改这行代码

var dt = getListTubas.GetTubaDatabase(null);

这将填充您的数据表

于 2013-11-04T13:34:32.170 回答
0

你也忘了这样做:

 myListTuba.Nom = row["nom_tuba"].ToString();

应该这样做

于 2013-11-04T13:58:53.303 回答