讓我們想象下一種情況,我使用SQLite的ADO.NET數據提供程序,並希望通過他的姓名和電子郵件(電子郵件爲NULL)從SQLite數據庫中選擇一個用戶。我可以在SQLiteCommand中使用DBNull.Value
using (var cmd = new SQLiteCommand(conn))
{
cmd.CommandText = "SELECT UserId FROM User WHERE [email protected] and [email protected]";
cmd.Parameters.AddWithValue("Name", userName);
cmd.Parameters.AddWithValue("Email", ((object)userEmail) ?? DBNull.Value);
var user = (int?)cmd.ExecuteScalar() ?? 0;
}
因此,我無法獲得現有用戶。 問題是:我可以在SQLiteCommand中使用DBNull.Value嗎?
可以顯示例如一些更多的代碼,你在哪裏分配userName的變量和USEREMAIL變量..?也只是好奇你爲什麼覺得需要返回Nullable(int?)你有沒有考慮使用SQLiteDataAdapter – MethodMan 2014-10-07 16:47:40
@DJKRAZE:根據微軟「如果結果集中第一行的第一列未找到,空引用是回。」。請參閱[DbCommand.ExecuteScalar方法](http://msdn.microsoft.com/zh-cn/library/system.data.common.dbcommand.executescalar(v = vs.110).aspx) – 2014-10-07 16:51:06
我知道ExecuteScalar的作用從來沒有見過任何人返回int這種方式..我只是好奇 – MethodMan 2014-10-07 16:52:52