MS Access - 将varchar列与int列组合 - ASP.net VB.net

时间:2017-11-09 13:31:54

标签: asp.net vb.net ms-access type-conversion alias

我正在使用oledb连接字符串将我的asp.net代码连接到访问数据库 我似乎无法转换合并3个字段 - ProductID(NUMBER)  ProductCode(TEXT),ProdDescription(TEXT)

Dim strQuery As String = "SELECT ProductID, (CAST(ProductID AS TEXT) + ' - ' 
                      + ProductCode + ' - ' + ProdDescription) AS [Prod] 
                      FROM [FG - End Product Codes] 
                      ORDER BY ProductCode;"

我也试过

(CAST(ProductID AS VARCHAR(10)) + ' - ' + ProductCode + ' - ' + ProdDescription) AS [Prod] 

(CONVERT(ProductID, TEXT)) + ' - ' + ProductCode + ' - ' + ProdDescription) AS [Prod] 

(CAST(ProductID) AS VARCHAR(10)) + ' - ' + ProductCode + ' - ' + ProdDescription) AS [Prod]

(CAST([ProductID] AS TEXT) + ' - ' + [ProductCode] + ' - ' + [ProdDescription]) AS [Prod]
  

错误消息:System.Data.OleDb.OleDbException:   'IErrorInfo.GetDescription因E_FAIL(0x80004005)而失败。'

     

错误代码:-2147467259

我在另一个问题中看到了相同的错误,但他们似乎有一些保留关键字问题,如果我的相同,我保留的关键字是什么,我的代码在哪里? 提前谢谢

1 个答案:

答案 0 :(得分:2)

那是因为您尝试对使用Access SQL的Access使用T-SQL。所以,试试这个:

Dim strQuery As String = "SELECT ProductID, ProductID & ' - ' & 
                  ProductCode & ' - ' & ProdDescription AS [Prod] 
                  FROM [FG - End Product Codes] 
                  ORDER BY ProductCode;"