我得到這個奇怪的錯誤在我的c#程序有插入功能。該函數是這樣的:從文本框中取出cnic的值,並將其與表中的列cnic進行覈對,以檢查表中針對該特定cnic的cnic的計數。目的基本上是爲了避免該專欄中的cnic的重複。當查詢正在運行,我得到一個例外是:插入函數顯示異常計數記錄特定cnic
的nvarchar的值「3410122878898」的轉換溢出int列
此值「3410122878898」不涉及當前的工作值爲進入。但是'3410122878898'是我在同一張表中的最後一行。這對我來說確實很奇怪,因爲我的表中有數據類型如下:
[v_id] BIGINT IDENTITY (1, 1) NOT NULL,
[cnic] NVARCHAR (20) NOT NULL,
[name] NVARCHAR (25) NOT NULL,
[Gender] NCHAR (10) NULL,
[Address] NVARCHAR (100) NULL,
[email] NVARCHAR (40) NULL,
[mob_no] NVARCHAR (20) NULL,
[employer] NVARCHAR (5) NOT NULL,
[mnl_reg_chk] INT NOT NULL,
[black_lst_chk] INT NOT NULL,
CONSTRAINT [PK_visitor_1] PRIMARY KEY CLUSTERED ([v_id] ASC),
CONSTRAINT [unique_cnic] UNIQUE NONCLUSTERED ([cnic] ASC),
CONSTRAINT [FK_visitor_visitor_company] FOREIGN KEY ([employer]) REFERENCES [dbo].[visitor_company] ([comp_id])
唯一INT附近CNIC是第一列的ID一個是主鍵和自動遞增。
這裏是我的代碼拋出異常:
String L_query = "Select COUNT(cnic) from visitor where visitor.cnic=" + cnic;
command = connection.CreateCommand();
command.CommandText = L_query;
String count = command.ExecuteScalar().ToString();
線字符串計數的執行= ...正上方就是發生異常時,我第一次提及。請幫助我解決問題!盡我所知,我已經解釋了問題。
如果執行「SELECT COUNT(*)FROM ...」,會發生什麼情況? – PrfctByDsgn
不應在查詢中引用cnic?不是'[cnic] NVARCHAR(20)不是NULL,'? – sanke
甚至會更好使用參數(SqlParameter)... – PrfctByDsgn