在WCF和.NET中返回DataTable

时间:2011-04-25 18:55:14

标签: vb.net wcf datatable

谢谢威廉,这是票。必须在两端分配name属性[DataTable.TableName]。

在这里注意:似乎有一些思想学派(没有冒犯Marc),以下陈述总是如此:

“世界上的一切都可以而且应该成为一个对象。”

简而言之,并非总是如此。在某些情况下,无论您如何尝试自定义,都无法将“对象”塞入任何千篇一律或类别。为了让我对这个野兽进行客观化,我必须创造大约4,000个物体。我没有时间这样做,但是这个项目必须作为服务运行。坦率地说,我认为MickeySoft的开发人员需要更多地进入现实世界,并亲眼看到虽然理论很棒,但它并不代表真实生活中的挑战。我全都是为了获得明显的好处来处理对象,但是存在普遍存在的现实。在我的交易中,即使“大部分时间”也很少发生。

在他们推出新技术集并停止支持旧技术之前,他们需要确保新技术具有与旧技术相同的功能。

记录:认为上述陈述是真实的人也是那些拒绝接受我目前正在进行的项目的人。

同样 - 感谢你们的时间,努力和意见!

我正在尝试创建一个WCF函数,它将一个表返回到我的控制台测试应用程序。我是一个总菜鸟。数据是二维的,如下所示:

23 Letter
42 Another Letter
43 Document
...

这是我正在尝试做的事情:

<ServiceContract()> _
Public Interface ILetterWriter
    <OperationContract()> _
    Function GetLetter(ByVal LetterID As String, ByVal StateID As String, ByVal CompID As String, ByVal tblVar As DataTable) As String

    <OperationContract()> _
    Function GetLetterNames(ByVal DepartmentType As Integer) As DataTable

End Interface



    Public Function GetLetterNames(ByVal DepartmentType As Integer) As DataTable Implements ILetterWriter.GetLetterNames
        Dim SQLCon As New SqlClient.SqlConnection
        Dim SQLCmd As New SqlClient.SqlCommand

        'Connect to the database
        SQLCon.ConnectionString = "Data Source=VMSQL08-SRV1;Initial Catalog=DotNetDev;User ID=aiis_pgmr;Password=ag58102;"
        SQLCon.Open()


        'Grab the stored procedure, which returns the letter names
        SQLCmd.CommandText = "sp_GetLetters"
        SQLCmd.CommandType = CommandType.StoredProcedure
        SQLCmd.Connection = SQLCon


        'Pass the parameters
        SQLCmd.Parameters.AddWithValue("@LetterType", DepartmentType)


        'Execute the stored procedure, fill the datatable from a data adapter
        GetLetterNames = New DataTable
        GetLetterNames.Load(SQLCmd.ExecuteReader)


        'Shut it down
        SQLCmd.Dispose()
        SQLCon.Close()
        SQLCon.Dispose()
    End Function

......当然,它不起作用。我只需要让WCF将基本表传递给我的控制台应用程序。执行SQL似乎工作得很好,我只是无法将数据恢复到我的应用程序。

非常感谢任何帮助。

谢谢, 杰森

1 个答案:

答案 0 :(得分:2)

我同意另一张海报。

但是,如果要返回DataTable,如果要从WCF服务返回,则必须设置DataTable的“Name”属性。