【问题标题】:ASP.Net VB - Change rows on gridview depending on SQL Query ResultASP.Net VB - 根据 SQL 查询结果更改网格视图中的行
【发布时间】:2010-12-06 20:18:46
【问题描述】:

我试图根据查询结果更改每一行的信息。我认为此刻我的问题是我只将查询的第一个结果返回到结果中。

例如查询返回第 1 行和 '1232' 第 2 行 '1243' 但结果只设置为 '1232'

我可能是错的,但这就是我在这里的原因:)

【问题讨论】:

  • 既然您提出您的 SQL 可能是错误的,您也可以发布吗?如果它包含敏感信息,请随意将其变暗。
  • 另外,根据我的经验,将 lblstatus 简单地放在 gridview 模板中会容易得多,而不是在每行数据绑定时有条件地添加控件,只需在需要时更改它的内容。
  • 这里是 SQL:Dim 语句 As String = "select tblCustomer.customerID from tblCustomer INNER JOIN tblAccount ON tblCustomer.customerID = tblAccount.customerID INNER JOIN tblAccountStatus ON tblAccount.accountID = tblAccountStatus.accountID WHERE (tblAccountStatus .status = '停用')"

标签: asp.net sql vb.net gridview


【解决方案1】:

您说您的 SQL 返回多行,但使用 ExecuteScalar() 运行它。 ExecuteScalar 只会返回一个结果,即第一行的第一列。听起来您需要使用 SQLDataAdapter 或其他东西来填充数据表才能完成您正在寻找的事情。

如果您按照 rlb 的指示包含您的 SQL 语句,那将是有益的。

【讨论】:

  • 好吧,我试过了,但还是不开心。我究竟做错了什么?谢谢 Dim result As SqlDataReader = command3.ExecuteReader() While result.Read() Dim IDRes As String = CStr(result("customerID")) If IDRes = variable Then temp = "Yes" labelstatus.Text = temp Else temp = "否" labelstatus.Text = temp End If End While
  • 对不起,无法让粘贴的代码编辑正确的格式:(
  • Karl,cmets 中的代码格式不正确,您需要为此编辑上面的问题。至于你现在的问题,我看到你粘贴的函数是grdView_RowDataBound,看起来数据已经已经绑定到gridView了,那你为什么要重新查询服务器呢?如果它已经是数据绑定的,那么您应该能够引用已经在内存中的数据绑定对象。我想在不了解您的程序结构和意图的情况下,很难推荐解决方案。
猜你喜欢
  • 2021-05-19
  • 2017-04-29
  • 1970-01-01
  • 2019-11-18
  • 2017-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多