我从()表中得到了一个日期时间值列表,如下所示:
31/12/14 4:45:30 PM
2014年12月31日下午4:45:30
2014年12月31日下午4:45:30
2014年12月31日下午4:45:30
2014年12月31日下午4:45:30
我希望它们只显示例如:。,在combobox.display成员中
2014
2015年
2016
2017年
我知道我写的如下可能有数据类型错误,但任何人都可以纠正我或指导我吗?
Public Sub combothing()
Dim connection As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & aaa & "';Persist Security Info=False;")
Dim selectme As String = "SELECT * FROM yeartbl"
Dim cmd As New OleDbCommand(selectme, connection)
Dim da As New OleDbDataAdapter
Dim ds As New DataSet
Dim dt As New DataTable
Try
If connection.State = ConnectionState.Closed Then
connection.Open()
End If
da.SelectCommand = cmd
da.Fill(ds)
da.Fill(ds, "yeartbl")
dt = ds.Tables("yeartbl")
connection.Close()
Me.ComboBox1.DataSource = ds.Tables(0)
Me.ComboBox1.ValueMember = "YID"
**Convert.ToDateTime(Me.ComboBox1.DisplayMember = "Years").Date.Year.ToString()**
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
答案 0 :(得分:0)
您可以做的事情之一(假设我们使用Excel)是,当您已经填写DataSet
时,再添加一列
ds.Tables(0).Columns.Add("year", System.Type.GetType("System.Integer"))
For each (r as row in ds.Tables(0).Rows)
r("year") = DirectCast(r("YTD"), DateTime).Year 'assuming it is not null column
Next
现在,将Value Member设置为
Me.ComboBox1.ValueMember = "Year"
另外,需要更多的研究,你可以做到这一点:
"SELECT *, FunctionTOConvertToDate(YTD) as year FROM yeartbl"