データベースにインシデントレポートを生成するWebページがあります。インシデントレポートは、車のIDを使用して車のテーブルに結び付けられています。ドロップダウンリストで選択されたインデックスが返されます。
DALで「追加情報:列 'CarID'、表 'RideXpress.dbo.IncidentReport'にNULL値を挿入できません」列にNULLが許可されていません。失敗する。
<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();
}
}
すべてのヘルプを次のを次のように関連するのaspxコードがあります非常に感謝しています。
ReportIdがNULLです。あなたはそれを初期化しておらず、値を割り当てていません。第二に、あなたの挿入ステートメントはそれを含んでおらず、CarIDを含んでいません。 ReportIDはID列ですか? – Kami