2009-08-10 30 views
2

我想空值傳遞給參數如下:EntLib途徑綁定 「空」 值爲參數

_db.AddInParameter(的DbCommand, 「ID」,DBNull.Value,myContactPerson.Id);

我收到以下錯誤:。

不能轉換 」System.DBNull到的System.Data.DbType「

我知道這個錯誤的意思

但我需要提供空值myContactPerson.Id

我怎樣才能做到這一點?

回答

1

如果myContactPerson.Id不是自動編號,那麼爲什麼不只是傳遞0

+0

是的。我通過零時差的方式實現了結果,反過來思考。 :) – user146584 2009-08-10 00:49:06

+1

@rengaseshan:你集中精力。我一直這麼做。我覺得最好休息一下,當你沒有想到這個問題時,它就會來找你。 ;-) – Kredns 2009-08-10 00:52:06

0

DBTYPE應該在該參數中傳遞,並且應該與您在數據庫中與之比較的表的dbtype(string,int等)匹配。您將用DBNull.Value替換您的值字段「myContactPerson.Id」,以始終傳遞空值。

+0

這裏的類型是int:作爲

的代碼應該被重寫。 – user146584 2009-08-10 00:39:16

+0

_db.AddInParameter(dbCommand,「Id」,System.Data.DBType.Int32,0);不要以爲你可以將null傳遞給Int db類型....更好的選擇是讓它自動生成。 – Jay 2009-08-10 00:51:36

0

按照ADO.NET,您可以通過爲DBNull任何的DbParameter。


_db.AddInParameter(dbCommand, "Id", DbType.Int32, DBNull.Value);