【问题标题】:ASP 4.0, C# Writing a DataSet as XML DataASP 4.0,C# 将 DataSet 编写为 XML 数据
【发布时间】:2013-05-06 18:47:10
【问题描述】:

我只是想加载一个数据集并将其作为 XML 输出到网页上,同时还要编写架构。我一直在研究找到一种方法来实现这一目标,但没有任何运气。

我使用的代码是:

string str =
     "SELECT Name,Members,MaxLvl,Faction,Government,Score FROM dim5orgs where faction =
    'Omni' order by Score DESC";

// Connection string for a typical local MySQL installation
string cnnString = "Server=xxxxxxxnet;Port=3306;Database=xxx;Uid=xxxxx;Pwd=xxxx";

// Create a connection object and data adapter
MySqlConnection cnx = new MySqlConnection(cnnString);
MySqlDataAdapter adapter = new MySqlDataAdapter();

// Create a SQL command object
string cmdText = str;

MySqlCommand cmd = new MySqlCommand(cmdText, cnx);

// Create a fill a Dataset
DataSet ds = new DataSet();
adapter.SelectCommand = cmd;
adapter.Fill(ds);

StringWriter sw = new StringWriter();
ds.WriteXml(sw,XmlWriteMode.WriteSchema);
string result = sw.ToString();

Response.Write(result);

现在我得到如下输出:

Punk732220OmniRepublic1644786805740

Paradise754220OmniDepartment1633903815782

我希望以某种方式使用数据集中的列名输出正确的 XML 格式。

喜欢:

<data>
    <name>Punk</name>
    <members>732</members>
    <Maxlvl>220</MaxLvl>...etc 
</data>

我希望采用正确的 XML 格式,并正确编写 XML 标头。

谢谢。

【问题讨论】:

  • 迈克尔,以下任何一个答案是否回答了您的问题 - 如果其中一个回答了,您能否将其标记为已接受?

标签: c# asp.net mysql xml dataset


【解决方案1】:

当您说“我得到类似的输出”时,这是否意味着您在网页中看到了它,或者这就是您调试程序时“结果”包含的内容?

如果是前者,您可能缺少设置响应类型:

Response.ContentType = "text/xml";

以及可选的编码:

Response.ContentEncoding = System.Text.Encoding.UTF8;

在你写下你的回复之前。

编辑:另外,请确保您没有从页面模板或母版页返回任何 html(假设您使用的是 .aspx 文件)。您可以通过在浏览器中查看页面源代码来检查这一点(右键单击并在 IE 中“查看源代码”)。抱歉,如果这教你吸鸡蛋,从你的问题我不知道你是否已经检查过这些东西。

编辑 2:我已经测试了您的代码,如果您将响应 ContentType 设置为 text/xml 它对我有用。

【讨论】:

    【解决方案2】:

    查看XmlSerializer Class 的文档。我认为您可以像这样使用它:

    StreamWriter streamWriter = new StreamWriter(fileLocation);
    
    XmlSerializer xml = new System.Xml.Serialization.XmlSerializer(ds.GetType());
    xml.Serialize(streamWriter, ds);
    
    streamWriter.Close();
    

    我没有用 DataSet 尝试过,所以我不确定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-15
      • 1970-01-01
      • 2013-01-02
      相关资源
      最近更新 更多