C 輸入格式不正確

2021-07-31 17:21:09 字數 912 閱讀 1103

機房收費系統統計乙個操作員結賬情況時,對充值、退卡、收費進行求和查詢。

報錯我的d層沒毛病的**是這樣寫的:

sqlhelper.sqlhelper sqlhelper = new sqlhelper.sqlhelper();

sqlparameter sqlparams1 = ;

string sql1 = "select sum(addmoney) from recharge where status=@status and userid=@userid"

; datatable table = sqlhelper.getdatatable(sql1, commandtype.text, sqlparams1);

informain.cash = convert.todecimal(table.rows[0][0].tostring ());

操作員沒有退卡或充值時金額就為0了。

奇怪的是當不存在符合條件的資料時也能查出乙個格來,就報錯了:

思路是這樣的:

找到出現這種情況的可能,直接給賦值為0。

但是判斷這個格里到底是「」還是null呢?尷尬了,答案是都不是。

其實是sum(addmoney)在搗亂的,在這可以直接判斷賦值給0的。把sql語句寫成這樣:

select isnull(sum(addmoney),0) from recharge where status=@status and userid=@userid
這樣當不存在符合條件的資料時就賦值為0。

總結:解決問題的思路很重要,思考問題的方式更重要。套路!

有關scanf的輸入格式不正確之說

int main 然後輸入 a 輸出結果為 1219387827 原因 如果scanf函式未按指定格式輸入,資料是不會存入到變數中去的,變數還會保持原有的資料。在程式中,a沒有給初值,所以輸出了乙個隨機值.你想輸入int資料,但輸入了乙個字元,這個字元會滯留在快取中,直到快取被清理。如果這條語句在迴...

伺服器標識的格式不正確

這是錯誤的 runat server id lbt del commandname delete commandargument eval user id text del asp linkbutton 改後為 server id lbt del commandname delete text de...

顯示時間格式不正確 手機郵箱驗證

問題 日期顯示格式問題 解決 這是通過存的session回顯時間,回顯的是英文格式的 處理時間,將英文格式的時間處理成yyyy mm dd的格式 var userdate userdate val var date new date userdate var d date.getfullyear d...