【解決方法】データ テーブルを XML にシリアル化するにはどうすればよいですか?

プログラミングQA


こんにちは、MSSQL データ テーブルを XML 形式に変換しようとしたときに問題が発生しました。
しかし、私はできませんでした」

Error: Cannot serialize the DataTable. DataTable name is not set.

Plsは私にアドバイスします

ありがとうございました

マディーン

私が試したこと:

ASP.NET
Public Function ConvertDatatableToXML(ByVal dt As DataTable) As String
    Dim str As MemoryStream = New MemoryStream()
    dt.WriteXml(str, True)
    str.Seek(0, SeekOrigin.Begin)
    Dim sr As StreamReader = New StreamReader(str)
    Dim xmlstr As String
    xmlstr = sr.ReadToEnd()
    Return (xmlstr)
End Function

Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
    Dim dt As DataTable = New DataTable()
    dt = GetData()
    Dim XMLstring As String = clsAPI.ConvertDatatableToXML(dt)
    Me.txtComments.Text = XMLstring

End Sub

ASP.NET
Public Function GetData() As DataTable
    Dim dt As New DataTable
    Dim adp As New SqlDataAdapter("usp_TR_Data", conn)
    adp.SelectCommand.CommandType = CommandType.StoredProcedure
    adp.SelectCommand.CommandTimeout = 150

    With adp.SelectCommand.Parameters
        .Clear()
        .Add("@Action", SqlDbType.NVarChar).Value = "CONVERT-XML"
        .Add("@SONo", SqlDbType.NVarChar).Value = Me.txtSONo.Text
    End With
    adp.Fill(dt)
    Return dt
End Function

SQL
SQL Query
		Select 
			[sname],[saddress1],[saddress2],[scity],[spostcode],[sstate],
			[dairport],[scountry],	[detailOfContent],[weight],[productPackages],
			[dimensionX],[dimensionY],[dimensionZ],[chargeableRate],[rname],[rphone],
			[raddress1],[raddress2],[rpostcode],[rcity],[rstate],[rairport],[rcountry],
			[rremark],[rvia],[serviceModeId],[agentId],[trackingno]
		From TR_Data
		where SONo=@sono

解決策 1

エラーエラーメッセージを読んでください – それはかなり明白です!

Cannot serialize the DataTable. DataTable name is not set.

だから…設定 DataTable.TableName プロパティ [^] シリアル化する前に:

VB
dt.TableName = "MyTable"

コメント

タイトルとURLをコピーしました