我得到一個系統空引用異常錯誤,顯示如下。 空引用異常
我對4個「dropdownlists」進行驗證。我可能做錯了什麼?
代碼如下。頁面的
protected void addExhibitButton_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
DateTime exhibitDate = DateTime.Now;
int caseid = Convert.ToInt32(DropDownListcaseid.SelectedItem.Text);
string exhibittype = exhibitTypeDropDownList.Text.ToString();
string storedloc = storedLocationDropDownList.Text.ToString();
string offid = DropDownList1.SelectedItem.Text.ToString();
string status = "Pending";
Stream imgStream = exhibitImageFileUpload.PostedFile.InputStream;
int imgLen = exhibitImageFileUpload.PostedFile.ContentLength;
byte[] imgBinaryData = new byte[imgLen];
int n = imgStream.Read(imgBinaryData,0,imgLen);
try
{
SqlConnection connections = new SqlConnection(strConn);
SqlCommand command = new SqlCommand("INSERT INTO Exhibits (CaseID, ExhibitType, ExhibitImage, DateReceived, StoredLocation, InvestigationStatus, OfficerID, SuspectID, InvestigatorID, ManagerID, AdminID) VALUES (@CaseID, @ExhibitType, @ExhibitImage, @DateReceived, @StoredLocation, @InvestigationStatus, @OfficerID, @SuspectID, @InvestigatorID, @ManagerID, @AdminID)", connections);
SqlParameter param0 = new SqlParameter("@CaseID", SqlDbType.Int);
param0.Value = caseid;
command.Parameters.Add(param0);
SqlParameter param1 = new SqlParameter("@ExhibitType", SqlDbType.NText);
param1.Value = exhibittype;
command.Parameters.Add(param1);
SqlParameter param2 = new SqlParameter("@ExhibitImage", SqlDbType.Image);
param2.Value = imgBinaryData;
command.Parameters.Add(param2);
SqlParameter param3 = new SqlParameter("@DateReceived", SqlDbType.SmallDateTime);
param3.Value = exhibitDate;
command.Parameters.Add(param3);
SqlParameter param4 = new SqlParameter("@StoredLocation", SqlDbType.NText);
param4.Value = storedloc;
command.Parameters.Add(param4);
SqlParameter param5 = new SqlParameter("@InvestigationStatus", SqlDbType.VarChar, 50);
param5.Value = status;
command.Parameters.Add(param5);
SqlParameter param6 = new SqlParameter("@OfficerID", SqlDbType.NChar, 10);
param6.Value = offid;
command.Parameters.Add(param6);
SqlParameter param7 = new SqlParameter("@SuspectID", SqlDbType.NChar, 10);
param7.Value = DBNull.Value;
command.Parameters.Add(param7);
SqlParameter param8 = new SqlParameter("@InvestigatorID", SqlDbType.NChar, 10);
param8.Value = DBNull.Value;
command.Parameters.Add(param8);
SqlParameter param9 = new SqlParameter("@ManagerID", SqlDbType.NChar, 10);
param9.Value = DBNull.Value;
command.Parameters.Add(param9);
SqlParameter param10 = new SqlParameter("@AdminID", SqlDbType.NChar, 10);
param10.Value = adminID;
command.Parameters.Add(param10);
connections.Open();
int numRowsAffected = command.ExecuteNonQuery();
connections.Close();
if (numRowsAffected != 0)
{
DropDownListcaseid.ClearSelection();
exhibitTypeDropDownList.Text = null;
storedLocationDropDownList.Text = null;
DropDownList1.ClearSelection();
messageLabel.Text = "Rows Inserted successfully";
messageLabel.Visible = true;
}
else
{
messageLabel.Text = "An error occured while inserting columns.";
messageLabel.Visible = true;
}
}
catch (Exception ex)
{
string script = "<script>alert('" + ex.Message + "');</script>";
}
}
}
圖片中運行以下
我申請驗證項目的所有下拉列表中,除了一個用瀏覽按鈕(這offcourse不是一個下拉列表項)。顯然根據我的知識,我沒有忽略任何領域。那麼可能是什麼原因呢?
那麼,DropDownListcaseid或其SelectedItem屬性爲null。沒有人可以做更多的推測,爲什麼沒有看到與該對象相關的代碼。 – 2011-01-19 07:44:16
這些下拉列表是如何創建的?它們存在於`.aspx`中嗎? – 2011-01-19 07:51:50