2014-11-06 21 views
0

即時得到的VARCHAR值「287201414153026341」的錯誤 轉換溢出int列轉換VARCHAR值的溢出int列填充一個未定義的DataTable

但沒有什麼我做在SQL試圖轉換從其varchar列的值轉換爲int。

Select * from view_spotcheck_manager 

該值是從在視圖varchar列稱爲未來「REQUEST_ID」

DataTable dt = new DataTable(); 
SqlCommand cmd = new SqlCommand(); 
cmd.Connection = conn; 
cmd.CommandText = @query; 
conn.Open(); 

SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); 


dt.Load(rdr); 

rdr.Close(); 
return dt; 

在線路中發生的異常

dt.Load(rdr); 

似乎明顯的是,由於某種原因,系統看到該值是所有數字,儘管是一個varchar列,它試圖將其轉換爲int而未被指示,所以我假定某種默認行爲vior在Load()方法中。

問題是我不想讓它做到這一點我需要它留一個varchar(在這種情況下,我不應該得到這個錯誤。構造一個強類型的DataTable對象,特別是加載每一列的缺點是有沒有辦法使Load方法不將這個所有的數字varchar值轉換爲int?

+1

該視圖可能正在計算列,並且在嘗試轉換失敗的過程中查看'view_spot數據庫中的check_manager'。 – HABO 2014-11-06 16:29:26

+1

因此,如果你在SSMS中運行'select * from view_spotcheck_manager',你會得到任何錯誤嗎? – Lamak 2014-11-06 16:30:49

+1

視圖的定義是什麼,從你發佈的看起來轉換和溢出發生在視圖 – 2014-11-06 16:31:03

回答

1

原來的註釋表明問題出現在底層視圖中,而不是在Load方法中,所涉及的列被錯誤地鏈接到另一個表的int列修復連接,並且所有工作都正在進行中

相關問題