以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]从外部数据库获取指定条件的数据  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=75973)

--  作者:农村人
--  发布时间:2015/10/19 10:03:00
--  [求助]从外部数据库获取指定条件的数据
从外部数据库获取指定条件的数据
Dim sa As String = e.Form.Controls("荒料编号").value \'字符串例如:TF15-03K0012"
Dim Parts() As String = sa.Split("-")
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim cmb As WinForm.ComboBox 
cmd.C
cmd.CommandText = "SELECT DISTINCT 流水编号 Fro m {质检} WHERE 打包 = 0"  \'此处再加上查询条件:获取未打包并且字符串包含 Parts(1).SubString(0,3),
dt = cmd.ExecuteReader()
cmb = e.Form.Controls("流水编号")
cmb.ComboList= dt.GetComboListString("流水编号")

--  作者:大红袍
--  发布时间:2015/10/19 10:10:00
--  
where 打包 = 0 and 列名 like \'%" & Parts(1).SubString(0,3) & "%\'"
--  作者:农村人
--  发布时间:2015/10/19 10:43:00
--  
Dim sa As String = e.Form.Controls("荒料编号").value
If sa > "" Then
    Dim Parts() As String = sa.Split("-")
    Dim cmd As New SQLCommand
    Dim dt As DataTable
    Dim cmb As WinForm.ComboBox
    cmd.C
    cmd.CommandText = "SELECT DISTINCT 流水编号 Fro m {质检} where 打包 = 0 And 荒料编号 Like \'%" & Parts(1).SubString(0,3) & "%\'"
    dt = cmd.ExecuteReader()
    cmb = e.Form.Controls("流水编号")
    If cmd.ExecuteScalar > "" Then
        cmb.ComboList= dt.GetComboListString("流水编号")
    Else
\'以下这段代码,如何改成,从后台获取存在的最大编号并且赋予编号
        Dim idx As Integer
        Dim max As String
        max = DataTables("质检").Compute("Max(流水编号)","[荒料编号] = \'" & sa & "\'") \'取得该天的最大编号
        If max > "" Then
            idx = CInt(max.Substring(13,3)) + 1 \'获得最大编号的后三位顺序号,并加1
        Else
            idx = 1
        End If
        e.form.Controls("流水编号").value = sa & "-" & Format(idx,"000")
    End If
End If

--  作者:大红袍
--  发布时间:2015/10/19 10:47:00
--  
DataTables("质检") 改成 dt
--  作者:农村人
--  发布时间:2015/10/20 10:36:00
--  
你好,感谢您的热心回复\'

从外部数据库获取指定条件的数据
Dim sa As String = e.Form.Controls("荒料编号").value \'字符串例如:TF15-03K0012"   \'希望只返回与03K相符的数据行/
Dim Parts() As String = sa.Split("-")
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim cmb As WinForm.ComboBox 
cmd.C
cmd.CommandText = "SELECT DISTINCT 流水编号 Fro m {质检} where 打包 = 0 and 列名 like \'%" & Parts(1).SubString(0,3) & "%\'"
dt = cmd.ExecuteReader()
cmb = e.Form.Controls("流水编号")
cmb.ComboList= dt.GetComboListString("流水编号")

假设我的数据有:
TF15-65K0136
TF15-65K0137
TF17-03K0253

会将65K和03K一起找出来.这不是我想得到的数据,


--  作者:大红袍
--  发布时间:2015/10/20 10:38:00
--  
5楼的代码没有问题,65K这种数据不符合条件啊