0

我正在尝试在我的应用程序中获取我的数据库以通过电话号码进行搜索。我已经进入“搜索条件生成器”屏幕,但我似乎无法正确查询。

这是我尝试过的查询,当我收到“从 nvarchar 转换为数字”错误时:

SELECT        phoneNumber, serviceDate, firstName, lastName, billingAddress, emailAddress, vehicleMake, vehicleModel, vehicleYear, vehicleColor, vehicleMileage
FROM            [Table]
WHERE        (phoneNumber LIKE @phoneNumber + N'%')

这是创建的表:

CREATE TABLE [dbo].[Table] (
    [phoneNumber]    NUMERIC (18)  NOT NULL,
    [serviceDate]    DATE          NULL,
    [firstName]      NCHAR (10)    NULL,
    [lastName]       NCHAR (10)    NULL,
    [billingAddress] NVARCHAR (50) NULL,
    [emailAddress]   NVARCHAR (50) NULL,
    [vehicleMake]    NCHAR (10)    NULL,
    [vehicleModel]   NCHAR (10)    NULL,
    [vehicleYear]    INT           NULL,
    [vehicleColor]   NCHAR (10)    NULL,
    [vehicleMileage] INT           NULL,
    CONSTRAINT [PK_Table] PRIMARY KEY CLUSTERED ([phoneNumber] ASC)
);

如果需要VB代码,我也会提供。

4

1 回答 1

0

如果您要将电话“数字”视为字符串,为什么要将它们存储为数字?你可以这样做:

WHERE CONVERT(VARCHAR(32), phoneNumber) LIKE @phonenumber + '%';

(另请注意,您在这里不需要 Unicode - 没有变音符号的数字。)

但最好更改列恕我直言的数据类型。

于 2013-04-18T21:24:47.273 回答