一个案例,第一列为年月系列值,在窗口事件AfterLoad加入如下代码,要求打开项目后,在组合框内的初始值为年月系列值中最大值并取前四位,应该如何设置代码?请各位老师指教,谢谢!!
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim cmb As WinForm.ComboBox
cmd.CommandText = "SELECT DISTINCT 第一列 From {表A}"
dt = cmd.ExecuteReader()
cmb = e.Form.Controls("ComboBox1")
cmb.ComboList= dt.GetComboListString("第一列")
[此贴子已经被作者于2011-7-1 14:26:44编辑过]
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim cmb As WinForm.ComboBox
cmd.CommandText = "SELECT TOP 4 * FROM (SELECT DISTINCT 第一列 From {表A} ORDER BY 第一列 DESC)"
dt = cmd.ExecuteReader()
cmb = e.Form.Controls("ComboBox1")
cmb.ComboList= dt.GetComboListString("第一列","","第一列 Desc")
cmb.Value = dt.DataRows(0)("第一列")
谢谢两位老师的热情帮助,可能是我没有表述清楚,要求是:打开项目,组合框内即显示年月系列值的最大值,并只显示最大值的前四位,本例为2011即可。如何实现?还请指教。
可以使用SubString方法获得从指定位置开始的、指定长度的字符串。
SubString第一个参数指定开始位置,第二个参数可选,用于指定长度,如果省略这个参数,则返回自指定位置开始的全部字符,例如:
Dim
s As String = "I Like Foxtable"
Output.Show(s.SubString(0,6)) '获得左边6个字符: I Like
Output.Show(s.SubString(s.Length - 8)) '获得右边8个字符:Foxtable
Output.Show(s.SubString(2,4)) '获得从第3个字符开始的4个字符: Like
Dim cmd As New SQLCommand
Dim cmb As WinForm.ComboBox
cmd.CommandText = "SELECT Max(Left(第一列,4)) From {表A}"
cmb = e.Form.Controls("ComboBox1")
cmb.Value = cmd.ExecuteScalar
狐爸的代码还是有问题,应该还可以选择2010才对。请再想想办法。
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim cmb As WinForm.ComboBox
cmd.CommandText = "SELECT DISTINCT Left(第一列,4) As 第一列 From {表A}"
dt = cmd.ExecuteReader()
cmb = e.Form.Controls("ComboBox1")
cmb.ComboList= dt.GetComboListString("第一列","","第一列 Desc")
cmb.Value = cmb.ComboList.split("|")(0)
[此贴子已经被作者于2011-7-1 13:52:04编辑过]
谢谢ybil老师的指教,完全符合要求,又学了一招,万分感谢ybil老师的帮助,当然也要感谢狐爸的帮助。