2013-11-04 179 views
2

我在C#编码,但有一个错误,我实际上无法解决,也许有人可以帮助我在这里!DataTable填充对象

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

这里是我的代码:

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填充与我的查询结果。 现在我想创建一个列表感谢我的Datatable,但出现一个错误:名称“dt”在当前上下文中不存在(大约从我的母语翻译)

我认为这不是一个巨大的错误,但我无法解决它,不知道我能做什么。

希望你能帮助我!

非常感谢!

+0

你是在哪里定义的? – DeveloperX

回答

5

您需要先返回值赋值给一个变量:

DataTable dt = getListTubas.GetTubaDatabase(null); 

然后你就可以在后面的代码中使用它。执行一个方法不会奇迹般地创建变量。

+0

非常感谢,你解决了它,但我有另一个问题,不能回答这个问题!我应该创建一个新的?我需要更多的声誉,我是新的! – AquaTuba

1

我想你忘了指定数据到您的数据表可能是你应该改变这行代码

var dt = getListTubas.GetTubaDatabase(null); 

这将填充您的数据表

0

你也忘了这样做:

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

应该这样做