こんにちは私はSQLにいくつかのデータを保存するメソッドを持っていますが、すべてのパラメータが設定されているわけではない場合があります。これにより、NULLのために例外が発生します。
これが私の方法です:
public string getBookingURL(string guid, BookingRequest request, string token, out string exitURL)
{
if (validateToken(token))
{
string command = "INSERT INTO OUTLOOKADDIN (GUID, TOKEN, BOOKINGID, STARTUTC, ENDUTC, SUBJECT, NUMPARTICIPANTS) VALUES (@GUID, @TOKEN, @BOOKINGID, @STARTUTC, @ENDUTC, @SUBJECT, @NUMPARTICIPANTS)";
SqlConnection connection = new SqlConnection(GetConnectionString());
connection.Open();
try
{
SqlCommand cmd = new SqlCommand(command, connection);
cmd.Parameters.Add("@GUID", guid);
cmd.Parameters.Add("@TOKEN", token);
cmd.Parameters.Add("@BOOKINGID", request.bookingID);
cmd.Parameters.Add("@STARTUTC", request.startUTC);
cmd.Parameters.Add("@ENDUTC", request.endUTC);
cmd.Parameters.Add("@SUBJECT", request.subject);
cmd.Parameters.Add("@NUMPARTICIPANTS", request.numParticipants);
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
cmd.Dispose();
cmd = null;
}
catch (Exception ex)
{
log.Error(ex.Message + "\n\rStackTrace:\n\r" + ex.StackTrace);
}
finally
{
connection.Close();
}
HttpContext current = HttpContext.Current;
string baseUrl = current.Request.Url.Scheme + "://"
+ current.Request.Url.Authority
+ current.Request.ApplicationPath.TrimEnd('/');
exitURL = baseUrl + "/index.html";
return baseUrl + '/'
+ "WebPage/Booking/BBooking.aspx?"
+ "OPS"
+ guid; ;
}
exitURL = null;
return null;
}
このSQLクエリは...
string command = "INSERT INTO OUTLOOKADDIN(GUID、TOKEN、BOOKINGID、STARTUTC、ENDUTC、SUBJECT、NUMPARTICIPANTS)VALUES(@GUID、@TOKEN、@BOOKINGID、@STARTUTC、@ENDUTC、@SUBJECT、@NUMPARTICIPANTS)";
...動的に実行する必要がありますか、それとも空のときにパラメータを追加できないようにする他の解決策はありますか?