在 WCF/.NET 中返回数据表

2024-02-08

我有一个 WCF 服务,我想从中返回一个数据表。我知道,就返回 DataTable 是否是一个好的实践而言,这通常是一个备受争议的话题。让我们暂时把它放在一边。

当我从头开始创建数据表时,如下所示,没有任何问题。该表已创建、填充并返回给客户端,一切顺利:

[DataContract]
public DataTable GetTbl()
{
    DataTable tbl = new DataTable("testTbl");
    for(int i=0;i<100;i++)
    {
        tbl.Columns.Add(i);
        tbl.Rows.Add(new string[]{"testValue"});
    }
    return tbl;
}

但是,一旦我出去并点击数据库来创建表,如下所示,我就会收到 CommunicationException“底层连接已关闭:连接意外关闭。”

[DataContract]
public DataTable GetTbl()
{
    DataTable tbl = new DataTable("testTbl");
    //Populate table with SQL query

    return tbl;
}

该表已在服务器端正确填充。它比我循环并返回的测试表小得多,并且查询小而快 - 这里不存在超时或大数据传输的问题。使用完全相同的函数和 DataContracts/ServiceContracts/BehaviorContracts。

为什么表的填充方式会对表的成功返回产生影响?


对于有类似问题的人,我已经解决了我的问题。这是好几倍。

  • 正如 Darren 建议和 Paul 支持的那样,配置中的 Max..Size 属性需要放大。 SvcTraceViewer 实用程序有助于确定这一点,但它仍然不总是给出最有用的错误消息。
  • 似乎当服务引用在客户端更新时,配置有时不会正确更新(例如,更改服务器上的配置值并不总是在客户端上正确更新。我必须进去更改 Max..在我的调试过程中,在客户端和服务器端多次调整属性大小)
  • 为了使 DataTable 可序列化,需要为其指定一个名称。默认构造函数不会给表命名,因此:

    return new DataTable();
    

    将不可序列化,同时:

    return new DataTable("someName");
    

    将为表命名任何作为参数传递的内容。

    请注意,可以随时通过将字符串分配给表来给表命名。TableName数据表的属性。

    var table = new DataTable();
    table.TableName = "someName";
    

希望这会对某人有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 WCF/.NET 中返回数据表 的相关文章

  • 使闭包捕获的变量变得易失性

    闭包捕获的变量如何与不同线程交互 在下面的示例代码中 我想将totalEvents 声明为易失性的 但C 不允许这样做 是的 我知道这是错误的代码 这只是一个例子 private void WaitFor10Events volatile
  • R 中两个时间戳之间的左连接

    我的目标是执行左连接intervals哪里的bike id比赛和created at时间戳在records在 之间start and end in the intervals table gt class records 1 data ta
  • 将布尔参数传递给 SQL Server 存储过程

    我早些时候问过这个问题 我以为我找到了问题所在 但我没有 我在将布尔参数传递给存储过程时遇到问题 这是我的 C 代码 public bool upload false protected void showDate object sende
  • 在 Visual Studio 2008 上设置预调试事件

    我想在 Visual Studio 中开始调试程序之前运行一个任务 我每次调试程序时都需要运行此任务 因此构建后事件还不够好 我查看了设置的 调试 选项卡 但没有这样的选项 有什么办法可以做到这一点吗 你唯一可以尝试的 IMO 就是尝试Co
  • C 预处理器库

    我的任务是开发源分析工具C程序 并且我需要在分析本身之前预处理代码 我想知道什么是最好的图书馆 我需要一些重量轻 便于携带的东西 与其推出自己的 为什么不使用cpp这是的一部分gcc suite http gcc gnu org onlin
  • 如果使用 SingleOrDefault() 并在数字列表中搜索不在列表中的数字,如何返回 null?

    使用查询正数列表时SingleOrDefault 当在列表中找不到数字时 如何返回 null 或像 1 这样的自定义值 而不是类型的默认值 在本例中为 0 你可以使用 var first theIntegers Cast
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • Qt moc 在头文件中实现?

    是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它 而不是将它们拆分为 h 和 cpp 文件 如果要在 cpp 文件中声明并实现 QObject 子类 则必须手动包含 moc 文件 例如 文件main cpp struct Sub
  • 如何衡量两个字符串之间的相似度? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定两个字符串text1 and text2 public SOMEUSABLERETURNTYPE Compare string t
  • for循环中计数器变量的范围是多少?

    我在 Visual Studio 2008 中收到以下错误 Error 1 A local variable named i cannot be declared in this scope because it would give a
  • clang 实例化后静态成员初始化

    这样的代码可以用 GCC 编译 但 clang 3 5 失败 include
  • 从库中捕获主线程 SynchronizationContext 或 Dispatcher

    我有一个 C 库 希望能够将工作发送 发布到 主 ui 线程 如果存在 该库可供以下人员使用 一个winforms应用程序 本机应用程序 带 UI 控制台应用程序 没有 UI 在库中 我想在初始化期间捕获一些东西 Synchronizati
  • 将 unsigned char * (uint8_t *) 转换为 const char *

    我有一个带有 uint8 t 参数的函数 uint8 t ihex decode uint8 t in size t len uint8 t out uint8 t i hn ln for i 0 i lt len i 2 hn in i
  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • 控制到达非 void 函数末尾 -wreturn-type

    这是查找四个数字中的最大值的代码 include
  • REST URI 和对象上的操作,可以进行评论、标记、评级等

    我正在为我的公司研究一种 Web API 看起来我们可能会实现一个 RESTful API 我现在已经阅读了几本关于此的书籍 O Reilly 的 RESTful Web 服务 似乎最有用 并为可以评论 标记和评级的对象提出了以下一组 UR
  • C - 直接从键盘缓冲区读取

    这是C语言中的一个问题 如何直接读取键盘缓冲区中的数据 我想直接访问数据并将其存储在变量中 变量应该是什么数据类型 我需要它用于我们研究所目前正在开发的操作系统 它被称为 ICS OS 我不太清楚具体细节 它在 x86 32 位机器上运行
  • Validation.ErrorTemplate 的 Wpf 动态资源查找

    在我的 App xaml 中 我定义了一个资源Validation ErrorTemplate 这取决于动态BorderBrush资源 我打算定义独特的BorderBrush在我拥有的每个窗口以及窗口内的不同块内
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框

随机推荐

  • ImageView的src和background有什么区别

    我对使用感到困惑src or background for an ImageView 我知道前者的意思是这个的内容ImageView后者指的是背景ImageView 但如何决定使用哪一个呢 我看不出有什么区别 所有视图都可以拍摄背景图像 T
  • 如何展平Nuget包内容文件?

    Nuget 包问题 buildAction copyToOutput flatten 被忽略 包项目 ThisProject vbproj Net 标准库 2 0 nuspec 文件
  • 提取单词周围的单词并将结果插入数据框列中

    我有一个数据框 df 有 3 列 如下所示 company year text Apple 2016 The Company sells its products worldwide through its 我想在以下位置搜索 产品 df
  • 如何通过 REST API 创建 Pod

    如何使用 REST API 创建 Pod 我查看了 Kubernetes API 文档 https kubernetes io docs reference generated kubernetes api v1 10 strong wri
  • 我可以使用 vs2010 开发 .net 4.5 应用程序吗

    我已经安装了 net 4 5 框架http www microsoft com en in download details aspx id 30653 http www microsoft com en in download detai
  • 如何使用 Perl 的 XML::Twig 将子元素添加到 XML?

    我有以下 XML 文件
  • 用C#创建QRCode并保存为图像

    我从 Web 应用程序上的 URL 接收数据 该数据是使用 API 响应动态生成的 我必须把它放在一个QRCode并将这个QRCode发送回前端供我的客户下载 我们使用 C 作为后端 使用 React js 作为前端 我尝试过使用ZXIng
  • 确定印度拉米纸牌是否为获胜牌 - Java

    我正在寻找一种有效的解决方案来确定一手牌是否是印度拉米纸牌中的获胜手牌 印度拉米纸牌在混合方面与金罗米纸牌类似 人们可以融合相同花色的序列 顺子 或融合一组相同的值 序列和集合都应至少包含 3 张牌 与金罗米牌不同 印度拉米牌一手牌由 13
  • 使用 SBT 运行 JUnit 测试

    我有一个 0 13 7 SBT 项目 有几个子项目 其中之一叫做webapp 并且它有很多JUnit测试在webapp src test java 运行时 sbt webapp test 只有ScalaTest测试已运行 但没有 JUnit
  • 向 MQ 发送消息时如何删除默认的 Spring JMS 模板标头?

    使用 Java Spring 与 WebSphere MQ 交互并尝试向其发送消息 Spring 不断向其添加以下标头信息 RFH MQSTR
  • 如何更改 SQL Server 的默认语言?

    现在当我查询时 SELECT language 它得到 us english 但我需要俄语 我不能使用SET LANGUAGE russian对于每个查询 我需要默认设置它 对于所有新会话 使用 SQL Server Management
  • Java - 从 JFileChooser 中删除组件(文件类型)

    如何从 JFileChooser 中删除组件 文件类型 标签及其组合框 我有以下代码 JFileChooser fileChooser new JFileChooser fileChooser setFileSelectionMode JF
  • IF 语句中 OR 和 AND 运算符的中断条件

    If 语句和任何其他布尔比较足够智能 可以在评估时在第一个 FALSE 值处停止A and B and C and D评估时首先为 TRUE 值A or B or C or D 这种行为的名称是什么 这是编译器优化吗 如果是这样 有没有办法
  • 如何强制完全下载链接上的txt文件?

    我有一个简单的文本文件 我想在任何锚标记链接上下载该文件 但是当我点击该链接时 txt 文件显示给我但未下载 我已经尝试过这段代码 a href test txt Click here a 单击链接时下载文件 而不是导航到文件 a href
  • 路由错误未初始化常量用户

    我是 Rails 新手 我正在尝试为演示应用程序设置 使用 facebook 登录 我正在使用 OmniAuth 并遵循本教程 https github com plataformatec devise wiki OmniAuth 概述 h
  • 多类模型的准确率、精确度和召回率

    我该如何计算accuracy 精确 and recall对于混淆矩阵中的每个类 我正在使用嵌入式数据集 iris 混淆矩阵如下 prediction setosa versicolor virginica setosa 29 0 0 ver
  • 打印 Windows 窗体

    我继承了一些代码来打印表单的内容 但是在纸上生成的图像似乎有某种阴影 模糊 就好像它试图进行抗锯齿但做得不太好 并且字母在边缘像素化 有谁知道提高最终质量的方法吗 System Drawing Printing PrintDocument
  • Visual Studio 扩展中的 app.config?

    我创建了一个代表 Visual Studio 项目向导 vsix 包 的 Visual Studio 扩展 我正在尝试连接 log4net 但没有成功 我已将问题归结为 app config 未正确加载 我已将其添加到我的 Visual S
  • 棘手的数组初始化

    在 C 不是 C 中 我尝试创建两个包含相同值的字符串表 但以两种不同的方式对值进行排序 而且我不希望字符串在内存中重复 基本上 我想做以下事情 除了根据 gcc 之外 它会失败 因为第二个数组初始化中的 初始化器元素不是常量 有办法解决这
  • 在 WCF/.NET 中返回数据表

    我有一个 WCF 服务 我想从中返回一个数据表 我知道 就返回 DataTable 是否是一个好的实践而言 这通常是一个备受争议的话题 让我们暂时把它放在一边 当我从头开始创建数据表时 如下所示 没有任何问题 该表已创建 填充并返回给客户端