所以我認爲(int?)的要點是如果數據庫爲空,則爲int或null。但是,我收到錯誤int?不工作的數據庫空值
其他信息:指定的轉換無效。
VehicleGroupID
是一個給出錯誤,因爲它在數據庫中爲NULL。它是(int?)所以它應該能夠正確接受空值?這不是(int?)的意思嗎?如果不是,那麼最簡潔的解決方案是什麼允許空值,因爲實際上我必須從數據庫獲取更多可空的整數。
這裏是我的代碼:
public int? VehicleClassID { get; set; }
public int? VehicleGroupID { get; set; }
public void getVehicleModelDetails()
{
DataSet retVal = new DataSet();
SqlConnection sqlConn = (SqlConnection)_context.Database.Connection;
SqlCommand cmdReport = new SqlCommand("storedProc", sqlConn);
SqlDataAdapter daReport = new SqlDataAdapter(cmdReport);
using (cmdReport)
{
cmdReport.CommandType = CommandType.StoredProcedure;
daReport.Fill(retVal);
}
// Set buyer vehicle details
var row = retVal.Tables[0].Rows[0];
VehicleClassID = (int?)row["VehicleClassID"];
VehicleGroupID = (int?)row["VehicleGroupID"];
}
FYI:我使用EF6,但存儲過程返回的自定義數據,所以我使出了這一點。
您是否嘗試過:'VehicleClassID = row.Field( 「VehicleClassID」)'? –
良好的通話!我是ASP.NET的新手,我看到這是以前的開發人員做這件事的方式,所以我認爲這是正確的方式。雖然你的方式是一個更好的解決方案!這正是我所期待的。 – Samir