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?
該視圖可能正在計算列,並且在嘗試轉換失敗的過程中查看'view_spot數據庫中的check_manager'。 – HABO 2014-11-06 16:29:26
因此,如果你在SSMS中運行'select * from view_spotcheck_manager',你會得到任何錯誤嗎? – Lamak 2014-11-06 16:30:49
視圖的定義是什麼,從你發佈的看起來轉換和溢出發生在視圖 – 2014-11-06 16:31:03