2

我正在尝试查看 a 中的数据Dataset,我不介意它是什么视图,我可以将其打印在 a 中text file或显示在 aDatagrid我只是想发现里面有什么。我正在测试一个 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;            
                }
            }

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


编辑:

我宁愿不只是把断点看作是无止境的,因为它有太多没有意义的数据。

在此处输入图像描述

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

4

7 回答 7

14

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

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

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

于 2012-09-03T07:46:31.503 回答
4

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

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

当您按下窥镜时,datagridview 将打开,您可以在此处查看数据或将其复制到其他地方查看。

于 2012-09-03T08:15:19.190 回答
2

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

ds.WriteXml("c:\\test.xml")
于 2017-05-27T15:28:20.947 回答
1

你的意思是这样的:

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

    textBox.Text += "\r\n";
}

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

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

于 2012-09-03T09:02:49.510 回答
1

此 SO 答案中突出显示了一种替代方法: StackOverflow:“如何将 DataTable 转换为 C# 中的字符串?”

基本上:

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

这够好吗?

于 2012-09-03T11:23:01.850 回答
1

如果您想填充 DataGridView,只需将数据集中的表分配给 DataGridView 数据源。例子:

DataGridView1.DataSource = dataset.Tables[0]
于 2015-04-02T13:29:04.060 回答
0

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

datasetprint = ds;  
于 2012-09-03T07:42:57.823 回答