【问题标题】:Return rows from multiple requests with datatable vb.net使用数据表 vb.net 从多个请求中返回行
【发布时间】:2017-03-02 14:28:23
【问题描述】:

如果我在同一命令中有两个或多个查询:

Using myCommand As New OracleCommand(
"select value from table where id between 1 and 3;" & 
"select value1 from table where id = 1000", DBSettings.GetConnection())

我有 DataTable 从第一个请求中选择值

Dim dt As DataTable = New DataTable
dt.Load(myCommand.ExecuteReader)

value1 = dt.Rows(0).Item(0).ToString().Trim()
value2 = dt.Rows(1).Item(0).ToString().Trim()
value3 = dt.Rows(2).Item(0).ToString().Trim()

我可以从第二个请求中通过 DataTable 获取值吗?我的值是否有可能从以下请求中获取行?

我不想创建很多命令和DataTable,因为我有很多命令和需要初始化的值

【问题讨论】:

    标签: vb.net datatable request oledb oraclecommand


    【解决方案1】:

    做一个UNION。它将两个查询合并为一个结果集。

    select value from table where id between 1 and 3
    UNION
    select value1 from table where id = 1000;
    

    这是与您的问题中的新信息相同的查询

    SELECT SYSPARM_VAL2 FROM SMS_PARM WHERE SYSPARM_ID BETWEEN 9900029 AND 9900033
    UNION
    SELECT SYSPARM_VAL4 FROM SMS_PARM WHERE SYSPARM_ID = 9900030;
    

    【讨论】:

    • 你怎么知道这是来自哪个表?
    • 在 SQL 中,UNION 子句将两个 SQL 查询的结果组合到一个包含所有匹配行的表中。这两个查询必须产生相同数量的列和兼容的数据类型才能合并。 => 我的列数不同
    • @EmmaW。您应该在您的问题中显示正确的查询,以便我们知道我们正在处理什么。 the_lotus 可以很好地建议 UNION,因为它适合您的示例,但显然这不符合您在评论中建议的需求。
    猜你喜欢
    • 1970-01-01
    • 2014-06-22
    • 2019-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-13
    • 1970-01-01
    相关资源
    最近更新 更多