Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从XML填充的数据表不会出现在后续函数中_C#_.net_Datatable - Fatal编程技术网

C# 从XML填充的数据表不会出现在后续函数中

C# 从XML填充的数据表不会出现在后续函数中,c#,.net,datatable,C#,.net,Datatable,我试图从XML文件导入数据,并使用XML文件中的数据创建DataTable 我使用静态数据表DataFromFileDataTable dt和返回dt 后来,我创建了静态void CalculateFromXMLDataTable dt来计算其中一列的数字之和 我是初学者,我不明白为什么这个数据表dt在CalculateFromXML中看起来不可见 您正在奇怪地传递变量,它是完全无用的。您可以在方法中创建对象。简单地使用它 static DataTable DataFromFile() {

我试图从XML文件导入数据,并使用XML文件中的数据创建DataTable

我使用静态数据表DataFromFileDataTable dt和返回dt

后来,我创建了静态void CalculateFromXMLDataTable dt来计算其中一列的数字之和

我是初学者,我不明白为什么这个数据表dt在CalculateFromXML中看起来不可见


您正在奇怪地传递变量,它是完全无用的。您可以在方法中创建对象。简单地使用它

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);
    }
}