iT邦幫忙

0

在sql server執行沒有問題,但在asp.net程式執行時會遇到「將資料類型從 varchar 轉換到 float 時發生錯誤」

btc 2024-03-21 10:35:432595 瀏覽
  • 分享至 

  • xImage

在SQL中有一屬性的資料型別是varchar,大部分建立的資料都是"數字"字串,極少情況下會遇到單一英文字母。在sql server中建立procedure並測試,遇到該筆單一英文字母的能夠正常執行並顯示。
但是,在asp.net程式中執行時,會exception出錯誤訊息,「將資料類型從 varchar 轉換到 float 時發生錯誤」。
我有檢查過procdure沒有相關的型別轉換,程式方面目前追蹤下來也沒有,
請問還有可能哪裡有錯誤或是我可能哪裡沒有檢查到?

jack8900 iT邦新手 1 級 ‧ 2024-03-22 16:50:47 檢舉
varchar可以顯示英數字沒問題,但是在asp.net的float格式只能數字,所以要事先把單一英文字母排掉,不然就是在asp.net接收的時候不能使用float接收
jack8900 iT邦新手 1 級 ‧ 2024-03-22 16:52:45 檢舉
如果不想要在sql處理,在asp.net可以用string接收後下正則只留下數字在轉換成float就可以,正則也要記得保留小數點
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
網世儒凮
iT邦新手 4 級 ‧ 2024-03-21 11:05:52

要先確定你 asp.net 連接 資料庫的方式是什麼?
是用 eneity frame work 還是 第三方ORM 還是用 API Json 的方式~~
估計是中間過程哪邊有問題

0
實習工程師
iT邦新手 1 級 ‧ 2024-03-21 11:49:12

先查出有問題的欄位資料(例如:SELECT * FROM TABLEA WHERE 欄位='有問題的資料')

再往下執行
01.先從Procedure執行有問題的資料(若沒問題跳第二點)
02.查看程式接取的資料欄位是不是"字串"。

0
純真的人
iT邦大師 1 級 ‧ 2024-03-21 15:14:23

如果你預期就是數字計算~
那麼你要在SQL就要先防呆~
只抓是數字格式的字串就好了~

select 文字欄位
from 表格
where IsNumeric(文字欄位) > 0

我要發表回答

立即登入回答