【问题标题】:Show the data in a dataset?显示数据集中的数据?
【发布时间】:2017-05-27 23:28:20
【问题描述】:

我正在尝试在Dataset 中查看数据,我不介意它是什么视图,我可以在text file 中打印出来或在Datagrid 中显示它我只是想发现里面有什么。我正在测试一个 Web 服务,看看它是否返回结果,我让它返回一个 Dataset

ServiceReference1.PropertiesSoapClient ws1 = new ServiceReference1.PropertiesSoapClient();
            ws1.Open();

 DataSet datasetprint = new DataSet();
            if (ws1 != null)
            {
                ServiceReference1.ReturnValuationRequest request = new ServiceReference1.ReturnValuationRequest(UserID, trackingNumber);
                ServiceReference1.ReturnValuationResponse response = ws1.ReturnValuation(request);
                if (response.ReturnValuationResult != null)
                {
                    DataSet ds = response.ReturnValuationResult;
                    datasetprint = ds;            
                }
            }

我查看其内容的最佳方式是什么?


编辑:

我不希望仅仅将断点看作是无穷无尽的数据,我没有任何意义。

我更喜欢在数据网格甚至文本文件中查看它。

【问题讨论】:

    标签: c# web-services dataset


    【解决方案1】:

    如果您想在没有任何额外代码的情况下查看它,只需在数据集填充后使用调试器设置断点并将鼠标悬停在数据集变量名称上,会出现一个小弹出窗口,然后单击弹出窗口中的小放大镜.

    我认为它被称为数据集可视化工具。

    请注意,它可以使您的调试会话超时并做一些其他时髦的事情。如果超时,您将无法继续单步执行您的代码。

    【讨论】:

    • @Pommy 你为什么不喜欢我的回答?
    • 不,我确实喜欢你的回答并投了赞成票,只是直到 MrFox 给出了很好的解释才明白。
    • @Pommy 干杯。我想很多人都忽略了这个不错的小功能。
    【解决方案2】:

    您应该使用外观类图标。 鼠标悬停菜单由以下元素组成:

    • 展开对象属性(“+”图标)
    • 变量名('datasetprint')
    • 镜子(图片)
    • 下拉菜单(不知道是什么:P)
    • 对象类型(System.Data.DataSet)
    • 图钉图标(因此悬停菜单保持原位)

    当您按下数据网格视图打开的镜子时,您可以在此处查看数据或将其复制到其他地方查看。

    【讨论】:

      【解决方案3】:

      将其导出到文件系统上的 XML 并使用任何阅读器进行检查

      ds.WriteXml("c:\\test.xml")
      

      【讨论】:

      • 太棒了,正是我想要的
      【解决方案4】:

      此 SO 答案中突出显示了一个替代方案: StackOverflow: "How to convert a DataTable to a string in C#?"

      基本上:

      using(var writer = new StringWriter())
      {
        myDataSet.WriteXml(writer);
        Console.WriteLine(writer.ToString());
      }
      

      这样就够了吗?

      【讨论】:

        【解决方案5】:

        你的意思是这样的:

        foreach (DataRow row in dt.Rows)
        {
            foreach (DataColumn col in dt.Columns)
                textBox.Text += row[col] + ", ";
        
            textBox.Text += "\r\n";
        }
        

        粗制滥造,但会起作用。 我确信我在某处使用 LINQ 有一个更优雅、更灵活的解决方案......

        尝试将 DataSet 搜索为 CSV,因为在某些时候,会将每个数据集行转换为分隔字符串,这基本上就是您所追求的。

        【讨论】:

          【解决方案6】:

          如果您想填充 DataGridView,只需从 数据集到 DataGridView 数据源。示例:

          DataGridView1.DataSource = dataset.Tables[0]
          

          【讨论】:

            【解决方案7】:

            如果你只想知道 DataSet 里面有什么,在下面的行设置一个断点,调试,看看里面有什么:

            datasetprint = ds;  
            

            【讨论】:

              猜你喜欢
              • 2023-04-01
              • 1970-01-01
              • 1970-01-01
              • 2010-09-20
              • 2020-01-28
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多