【问题标题】:c# Dataset - modify SELECT statement with WHERE conditionsc# Dataset - 使用 WHERE 条件修改 SELECT 语句
【发布时间】:2016-05-19 13:05:45
【问题描述】:

我有一个数据集、表适配器和绑定源,用于将数据从数据库中取出并输入到 Windows 窗体中。

SELECT 语句基本上是SELECT * FROM Employees 返回 50,000 行。

我想在填充之前添加​​一个WHERE 子句,所以我不会用 50,000 行填充数据表。比如修改SELECT语句为:

SELECT * FROM Employees WHERE Lastname LIKE 'A%'

我该怎么做?

例如,我正在尝试此操作,但 SelectCommand 设置为空,因此失败。不确定 SelectCommand 何时被填充。

Me.taBoxesCarrierTech.Adapter.SelectCommand.CommandText = 
Me.taBoxesCarrierTech.Adapter.SelectCommand.CommandText & _
"AND BL.LOG_NO = " & mPhantomLogNum

【问题讨论】:

  • 你知道 C# 中基本的字符串操作是如何工作的吗?
  • 是的,但是我在哪里修改选择命令?我正在尝试类似: Me.taBoxesCarrierTech.Adapter.SelectCommand.CommandText = Me.taBoxesCarrierTech.Adapter.SelectCommand.CommandText & _ "AND BL.LOG_NO = " & mPhantomLogNum 但 CommandText 设置为 Nothing
  • 如何查询数据库?你在使用存储过程吗?如果是这样,我建议使用一个参数来避免 sql 注入。
  • 我创建了一个设计时数据集,它具有直接 SQL,但我基本上想在运行时修改 SQL。
  • 是否需要CommandText?我不这么认为。已发布答案,如果可以,请接受。

标签: c# .net datasource


【解决方案1】:

如果你想在 TableAdapter 中使用 WHERE 子句,你需要一个 parameterized TableAdapter query 来构建

【讨论】:

  • 好的,谢谢。这就是解决方案。在设计时修改 SELECT 语句以具有 ... WHERE Lastname = :Lastname(这是一个 oracle 数据库)。然后使用 Source 作为 LastName 添加一个参数。然后在 FILL 命令中将其作为参数传递 TableAdapter1.Fill(Me.DS_Something.dtDataTable, "Smirth")
猜你喜欢
  • 1970-01-01
  • 2012-01-26
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 2018-05-02
  • 1970-01-01
  • 2011-01-15
  • 2022-11-10
相关资源
最近更新 更多