我有一個網頁在數據庫中生成事件報告。事故報告使用汽車ID綁定到汽車桌上。下拉列表選定的索引返回null
當我點擊提交按鈕時,我在DAL中得到一個錯誤信息:「附加信息:無法將NULL值插入列'CarID',表'RideXpress.dbo.IncidentReport';列不允許空值INSERT失敗「。
相關的aspx代碼如下
<asp:DropDownList ID="DD1" runat="server" CssClass="form-control" AutoPostBack="true" ></asp:DropDownList>
隱藏文件相關的代碼如下
string connectionString = ConfigurationManager.ConnectionStrings["RideXpressConnectionString"].ToString();
ReportBLL ReportBL = new ReportBLL(connectionString);
ReportViewModel report = new ReportViewModel();
int ID = DD1.SelectedIndex;
report.CarID = ID;
report.DateOfIncident = Convert.ToDateTime(Date.Text);
report.ReportName = Name.Text;
report.ReportDescription = Description.Text;
report.DateOfReport = DateTime.Today;
ReportBL.AddReport(report);
Response.Redirect("~/Reports.aspx");
和DAL,其中提出的錯誤如下
public int AddReport(ReportViewModel add)
{
string sqlQuery = "INSERT INTO IncidentReport(DateOfIncident, ReportName, ReportDescription, DateOfReport)" +
"Values (@DateOfIncident, @ReportName, @ReportDescription, @DateOfReport)";
using (SqlConnection con = new SqlConnection(_connectionString))
using (SqlCommand cmd = new SqlCommand (sqlQuery, con))
{
con.Open();
cmd.Parameters.Add("@ReportID", SqlDbType.Int).Value = add.ReportID;
cmd.Parameters.Add("@CarID", SqlDbType.Int).Value = add.CarID;
cmd.Parameters.Add("@DateOfIncident", SqlDbType.DateTime).Value = add.DateOfIncident;
cmd.Parameters.Add("@ReportName", SqlDbType.VarChar).Value = add.ReportName;
cmd.Parameters.Add("@ReportDescription", SqlDbType.VarChar).Value = add.ReportDescription;
cmd.Parameters.Add("@DateOfReport", SqlDbType.DateTime).Value = add.DateOfReport;
return cmd.ExecuteNonQuery();
}
}
任何幫助將非常感激。
您的ReportId爲NULL。您尚未初始化或爲其分配值。其次,你的插入語句不包括它,也不包括CarID。 ReportID是標識列嗎? – Kami