![](/img/trans.png)
[英]ASP.NET 5 vNext EF7 SQLite TypeLoadException on CreateParameter
[英]ASP.Net C# CreateParameter with empty string
在我的ASP.net C#web項目中,我有一個包含參數的查詢命令對象。 我使用以下代碼填充參數:
DbCommand command = conn.CreateCommand();
command.CommandText = query;
DbParameter param = command.CreateParameter();
param.ParameterName = parameter;
param.DbType = DbType.String;
param.Value = value;
此代碼適用於除空字符串之外的所有字符串。 如果我將輸入字段留空,則會將值傳遞為“”。 如果發生這種情況,我會收到以下異常:
ORA-01400: cannot insert NULL into (string)
有沒有辦法允許我在數據庫中插入空字符串?
我使用Oracle數據庫,我使用System.Data.OracleClient作為提供程序。
如果要插入空字符串,則必須允許NULL值。 否則,Oracle會將空字符串靜默轉換為NULL,您將獲得異常。
另一個選擇是插入一個帶有空格' '
的空字符串,但我認為這會很痛苦。
以下是Oracle為什么采用這種(非標准)方式的進一步信息: 為什么Oracle 9i將空字符串視為NULL?
如果值為null,請設置param.Value = DBNull.Value,而不是將其設置為null:
if (value == null)
{
param.Value = DBNull.Value;
}
else
{
param.Value = value;
}
嘗試
param.Value = string.IsNullOrEmpty(value) ? DBNull.Value : value;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.