C中物件不能從DBnull轉換為其他型別

2021-09-01 21:16:32 字數 2176 閱讀 6116

1樓:帖興文

從資料庫裡讀資料,如果型別可空,要先判空,特別是int/datetime

string time;

if(!datarow.isnull("addtime"))如果是寫入,不能寫入null要寫入dbnull如string name;

if(name==null)

cmd.addparameter("name",dbnull.value);

else

cmd.addparameter("name",name)

2樓:

樓上正解

鑑定完畢,資料庫的null要用dbnull.value

而不是c#的null

3樓:錯騫位博敏

sqlconnection

con=

db.createconnectionforum();

con.open();

sqlcommand

cmd=

newsqlcommand("selectmax(themenum)

from

forumtheme",

con);

intcount=0;

objectc=

cmd.executescalar()

;if(c

!=null)

count

=convert.toint32(c);

count++;

con.close();

.....

4樓:薊意暢樂天

select

max(themenum)

from

forumtheme

執行的結果是

null

也就是要麼

forumtheme

一條記錄也沒有

要麼forumtheme

表裡面themenum

的資料都是

null

intcount

=convert.toint32(cmd.executescalar());

//提示出錯

count++;

修改為:

intcount=0;

object

tmpval

=cmd.executescalar()

if(tmpval

!=dbnull

)count

=convert.toint32(

tmpval);)

count++;

5樓:世代榮昌樂太平

catch

for (int n = 0; n < 7; n++)else}

物件不能從 dbnull 轉換為其他型別.

6樓:等不到的落幕

資料庫的欄位是null值,而資料庫的null值在**中用dbnull.value表示,不能轉成其他型別,這個型別比較特殊,dbnull可以被tostring(),你可以對欄位先.tostring()在轉

看你的轉換是想轉換成int型,這個tostring後會是string.empty,也還是不能轉int,加個判斷吧

if(is dbnull)

else

在存入資料時,要是去判斷,不然就吧-1存進去了,更改了原來的dbnull,注意下就行,這個比較特殊

7樓:松鼠就是我

從資料庫裡面拿到的值是空值但是轉換成另一種型別的時候要求不能是空值,比如datetime,boolean之類的,這時需要在拿到值的時候try或catch一下,或者直接設定該列不能為空,給他一個預設值就行了。

dbnull在dotnet是單獨的一個型別 system.dbnull 。它只有一個值 dbnull.

value 。dbnull直接繼承 object ,所以 dbnull 不是 string , 不是 int , 也不是 datetime

8樓:

使用三元運算子吧

decimal ret=data[0]==dbnull.value ? 0m : convert.todecimal(data[0])

9樓:匿名使用者

賦值之前判斷一下資料型別

C中的int和char之間的轉換問題

這要用到ascii碼的知識,粗略講一下 字元 0 的ascii碼為 48,然後是 1 2 3 9 字元 空格 的ascii碼為32.字元 a 的ascii碼為65,然後是 b c z 字元 a 的ascii碼為97,然後是 b c z 所以,把一個數字字元ch,轉為一個整數,就是ch 0 當然ch ...

c怎樣日期轉換成字串C中如何把日期型轉化為字元型

日期格式化與字串轉換成時間 c yyyy 代表年 mm 代表月 注意這裡要用大寫 dd 代表日 hh hh 代表時 24小時形式 12小時形式 mm 代表分 這裡用小寫表示分鐘 ss 代表秒 日期格式化成指定字串 datetime d datetime.now d.tostring yyyymmdd...

C 中,如何將LONG型轉換為float和double型

long a,b int c float d d double 1000 a b 這樣不用你的c了,或者你把c定義成double型別吧 法1 itoa,ltoa a表示array陣列的意思 標頭檔案 stdlib.h 示例 int a 3 long b 23 char buf1 30 itoa a,...