C 中往資料庫插入空值的問題

2021-08-31 14:05:33 字數 895 閱讀 6960

在用c#往資料庫裡面插入記錄的時候, 可能有的字段你不賦值,那麼這個欄位的值就為null, 如果按一般想法的話,這個值會被資料庫接受, 然後在數 據表裡面顯示為null, 實際上這就牽扯到乙個型別的問題, c#中的null於sql中的null是不一樣的, sql中的null用c#表示出來就 是dbnull.value, 所以在進行insert的時候要注意的地方.

example:

sqlcommand cmd=new  sqlcommand("insert into student values(@stuname,@stuage)" ,con);

cmd.parameters.add("@stuname" ,stuname);

cmd.parameters.add("@stuage" ,stuage);

cmd.executenonquery();

這些**看似沒有問題, 其實當stuname於stuage中的任何乙個值為null的時候, 這**就會報錯...汗!!!

解決辦法:

其實最簡單的辦法就是進行判斷, 當stuname或stuage為空時, 插入dbnull.value.

但是這樣當乙個資料庫有很多欄位時或者是有很多張表時, **就會很多了,我也沒有找到特別方便的方法,我的方法是:寫乙個靜態的方法來對變數的值進行判斷:

example :     

static

public

object  sqlnull(object  obj)

//用上面的方法對引數進行了判斷

cmd.parameters.add("@stuname" ,sqlnull(stuname));

cmd.parameters.add("@stuage" ,sqlnull(stuage));

cmd.executenonquery();

C 中往資料庫插入空值的問題

在用c 往資料庫裡面插入記錄的時候,可能有的字段你不賦值,那麼這個欄位的值就為null,如果按一般想法的話,這個值會被資料庫接受,然後在數 據表裡面顯示為null,實際上這就牽扯到乙個型別的問題,c 中的null於sql中的null是不一樣的,sql中的null用c 表示出來就 是dbnull.va...

C 中往資料庫插入 更新時候關於NUll空值的處理

本文 今天碰到個問題。sqlcommand對傳送的引數中如果欄位的值是null具然不進行更新操作,也不提示任何錯誤。百思不得其解。先作個記錄,再查資料看看什麼原因。暫時的解決方法 1 update不支援更新null,先delete後insert來替換.2 替代null的方法,對於字元型,只要是nul...

往資料庫中插入資料

private materialenterstore entitymes 入庫表 private materialenterdetail entitymed 入庫明細表 transactionmanager tran datarepository.provider.createtransaction...