【问题标题】:ASP.NET Get a single value returned from TableAdapter Select QueryASP.NET 获取从 TableAdapter Select Query 返回的单个值
【发布时间】:2011-03-29 18:11:31
【问题描述】:

我在我的 ASP.NET 项目中使用 TableAdapters,但我遇到了检索此数据的方式问题。

代码如下:

    BookingDataTableAdapters.bookingTableAdapter ta = new BookingDataTableAdapters.bookingTableAdapter();

    String booking_id_string = Request["id"];
    int booking_id = Int32.Parse(booking_id_string);


    BookingData.bookingDataTable table = ta.GetOwnerUsername(booking_id);

    String username = string.Empty;

    foreach (DataRow dr in table.Rows)
        username = dr[0].ToString();

但是这会出现以下错误:

未能启用约束。一行或多行包含违反非空、唯一或外键约束的值。

但是,当我在查询生成器中运行查询时,它运行良好且没有错误。我还在表适配器 xsd 文件属性中禁用了“EnforceConstraints”。

我不知道出了什么问题,有没有更好的方法让我从我在 ASP.NET 中的查询中获取这个单一值

非常感谢,感谢您的帮助:-)

【问题讨论】:

  • 您是要返回单行还是单个值?如果是后者,我不确定你为什么要使用表适配器。
  • 我认为是因为他不想写任何SQL...表适配器应该处理这一切...然后他提取数据值。这是一种繁重的操作方式,但谁来告诉他如何做他的工作......不是我。
  • 我只想要一个值,但老实说,我不知道任何其他方法来获取此数据! :(

标签: asp.net sql tableadapter


【解决方案1】:

这告诉我,数据库中的 BookingData 已更改,而您项目中的对象未更新。当您获得该行时,它无法填充对象,因为数据库可能有一个空值并且对象不允许它。更新数据集。

【讨论】:

  • 感谢您的意见,我该如何强制更新数据集?
  • 哎呀,我不知道。我认为一旦生成它们,您必须打开数据集,从中删除表,然后将其拖回。可能有更好的方法。
  • 很遗憾没有解决它,有没有更好的方法来获取您推荐的这些数据?
  • 是的,使用 SqlDataReader!你可以得到你想要的一个值。 msdn.microsoft.com/en-us/library/…
猜你喜欢
  • 2022-06-26
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 2013-02-04
  • 2011-04-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多