将显示成员属性转换为大写

时间:2013-12-17 21:12:51

标签: sql vb.net

我正在使用以下查询从访问数据库返回结果。在“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

2 个答案:

答案 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