以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  sqlGetComboListString能否将获取后的字段进行处理在赋给组合框?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=173809)

--  作者:guosheng
--  发布时间:2021/12/17 9:38:00
--  sqlGetComboListString能否将获取后的字段进行处理在赋给组合框?
日期字段的值为:2019-01-01,2019-01-012019-02-032020-02-03,2020-02-03,……
我只想获取  年和月,赋给组合框。即:2019-01,2019-02,2020-02,……
sqlGetComboListString("日期")

[此贴子已经被作者于2021/12/17 9:38:36编辑过]

--  作者:有点蓝
--  发布时间:2021/12/17 10:13:00
--  
什么数据库?
--  作者:cd_tdh
--  发布时间:2021/12/17 11:10:00
--  

我也没弄出来,直接格式化好像没用,sql数据库


--  作者:guosheng
--  发布时间:2021/12/17 11:33:00
--  
sqlserver数据库
--  作者:cd_tdh
--  发布时间:2021/12/17 11:50:00
--  

不知道思路对不对,但是这样也报错

Dim lst As String = ""
For Each dc As String In DataTables("表A").GetValues("CONVERT(varchar(6), 第二列, 112)") \'外部表就报错

\'For Each dc As String In DataTables("表A").sqlGetValues("format(第二列, \'yyyyMM\')") \'内部表这样是没问题的
    lst &= "|" &  dc
Next
lst = lst.trimstart("|")
e.Sender.ComboList = String.join("|",lst.toarray)

 

 
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20211217114857.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2021/12/17 11:56:21编辑过]

--  作者:狐狸爸爸
--  发布时间:2021/12/17 11:55:00
--  
Dim sql As new SQLCommand
sql.CommandText =  "Sel ect DIST INCT Year(日期) & \'-\' &  month(日期) As 年月 f rom {订单}"
Dim dt As DataTable = sql.ExecuteReader()
Return dt.GetComboListString("年月")

--  作者:有点蓝
--  发布时间:2021/12/17 11:57:00
--  
以下是引用guosheng在2021/12/17 11:33:00的发言:
sqlserver数据库

sqlGetComboListString("CONVERT(nvarchar(7), 日期, 120)")
--  作者:有点蓝
--  发布时间:2021/12/17 11:57:00
--  
For Each dc As String In DataTables("表A").sqlGetValues("CONVERT(varchar(6), 第二列, 112)")
--  作者:cd_tdh
--  发布时间:2021/12/17 11:58:00
--  
看了狐爸这个,我那个思路其实生成一个临时的DataTable表,用我那个方法应该也能实现
--  作者:cd_tdh
--  发布时间:2021/12/17 12:23:00
--  
以下是引用有点蓝在2021/12/17 11:57:00的发言:
For Each dc As String In DataTables("表A").sqlGetValues("CONVERT(varchar(6), 第二列, 112)")

明白了,外部表的还只能在外部表测试,内部表测试就报错