The issue:
insert into tb_Admin values (1,111, 'ricky',1234)
Implicit conversion from data type varchar to varbinary is not allowed. Use the CONVERT function to run this query.
Root Cause: the column 'AdminName' define as varbinary.
--The table structure: CREATE TABLE [dbo].[tb_Admin]( [ID] [int] NOT NULL, [AdminNum] [varchar](50) NULL, [AdminName] [varbinary](50) NULL, [AdminPwd] [varbinary](50) NULL, CONSTRAINT [PK_tb_Admin] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO
Resolution:
Insert into tb_Admin(ID,AdminNum,AdminName,AdminPwd) values (1,111,cast('name' as varbinary(50)),cast('1234' as varbinary(50)))
Result1:
ID AdminNum AdminName AdminPwd
1 111 0x6E616D65 0x31323334
Search the original information:
SELECT TOP 10 [ID] ,[AdminNum] , cast([AdminName] as varchar(50)) , cast([AdminPwd] as varchar(50)) FROM [db_ExamOnline].[dbo].[tb_Admin]
Result2:
ID AdminNum (No column name) (No column name)
1 111 name 1234
原文地址:http://blog.51cto.com/57388/2119511
时间: 2024-11-09 22:28:22