我正在使用以下查询从访问数据库返回结果。在“DocName”列中,混合了大写字母,小写字母和大写字母。和两者的结合。不幸的是,我没有修改数据库的权限,所以想要将“显示成员”转换为理想的正确案例,但如果不可能将大写字母转换为大写。我见过.ToUpper选项,但无法让它工作。任何想法
Dim da As New OleDb.OleDbDataAdapter("", "")
Dim dt As New DataTable
Dim conn As String
Dim eSearch As String = AllDetails(n).uCode
conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Me.aClients & ""
da.SelectCommand.Connection.ConnectionString = conn
da.SelectCommand.CommandText = "SELECT DocName FROM Documents WHERE (UnitCode = " & eSearch & ") AND (Required = True)"
da.Fill(dt)
lstRequired.DataSource = dt
lstRequired.DisplayMember = "DocName"
lstRequired.Refresh()
Exit Sub
End If
Next
End Sub
答案 0 :(得分:2)
在您的命令中尝试将其作为查询:
da.SelectCommand.CommandText = "SELECT UCASE(DocName) AS DocNm FROM Documents WHERE (UnitCode = " & eSearch & ") AND (Required = True)"
有一个UCase函数,如果它是一个字符串,则以大写形式检索所有数据。
更新:根据您对其他问题的评论,现在您返回的列不再命名为DocName。使用上面的代码行替换设置命令文本的代码,然后用下面的代码行替换设置DisplayMember属性的代码行:
lstRequired.DisplayMember = "DocNm"
我明确地将列名设置为新创建的列的DocNm,并将DisplayMember属性更改为新列名。
答案 1 :(得分:0)
您可以在commandtext中执行此操作,或者遍历表并使用.ToUpper()更新每一行的DocName列。
我相信使用该提供商可以使用uCASE
da.SelectCommand.CommandText = "SELECT UCASE(DocName) as DocName FROM Documents WHERE (UnitCode = " & eSearch & ") AND (Required = True)"
如果不是UCASE,请尝试将UPPER(DocName)作为DocName