C# 从XML填充的数据表不会出现在后续函数中
我试图从XML文件导入数据,并使用XML文件中的数据创建DataTable 我使用静态数据表DataFromFileDataTable dt和返回dt 后来,我创建了静态void CalculateFromXMLDataTable dt来计算其中一列的数字之和 我是初学者,我不明白为什么这个数据表dt在CalculateFromXML中看起来不可见C# 从XML填充的数据表不会出现在后续函数中,c#,.net,datatable,C#,.net,Datatable,我试图从XML文件导入数据,并使用XML文件中的数据创建DataTable 我使用静态数据表DataFromFileDataTable dt和返回dt 后来,我创建了静态void CalculateFromXMLDataTable dt来计算其中一列的数字之和 我是初学者,我不明白为什么这个数据表dt在CalculateFromXML中看起来不可见 您正在奇怪地传递变量,它是完全无用的。您可以在方法中创建对象。简单地使用它 static DataTable DataFromFile() {
您正在奇怪地传递变量,它是完全无用的。您可以在方法中创建对象。简单地使用它
static DataTable DataFromFile()
{
System.Xml.XmlTextReader reader =
new System.Xml.XmlTextReader(@"C:\Data.xml");
DataSet DataFromXML = new DataSet();
DataFromXML.ReadXml(reader);
// just return
return DataFromXML.Tables[0];
}
您的计算方法很好,但对数据的调用不是很好。将其更改为以下内容。现在DataTable实际上是方法加载并正确传递给calculate方法的内容
class Program
{
static void Main(string[] args)
{
DataTable dt = DataFromFile(dt);
CalculateFromXML(dt);
}
}
您应该执行CalculateFromXMLdt;什么是在CalculateFromXML中不可见且无法从中访问?你有错误吗?如果是,请张贴错误。DataTable是空的吗?您传递的是一个无用的参数,而没有得到方法的返回。这个问题令人困惑。您说您可以用CalculateFromXML打印数据表,但随后又说无法从同一个函数中访问它。您是否尝试过使用调试器单步执行并检查发生了什么?
class Program
{
static void Main(string[] args)
{
DataTable dt = new DataTable();
DataFromFile(dt);
CalculateFromXML(dt);
}
static DataTable DataFromFile()
{
System.Xml.XmlTextReader reader =
new System.Xml.XmlTextReader(@"C:\Data.xml");
DataSet DataFromXML = new DataSet();
DataFromXML.ReadXml(reader);
// just return
return DataFromXML.Tables[0];
}
class Program
{
static void Main(string[] args)
{
DataTable dt = DataFromFile(dt);
CalculateFromXML(dt);
}
}