2 つの DropDownList と 1 つの ListBox があります。つまり、ddlYearLevel、ddlSubjects、および lstStudents です。
このようにコードを設定したため、ddlSubjects と lstStudents は ddlYearLevel に依存しています。
protected void ddlYearLevel_SelectedIndexChanged(object sender, EventArgs e)
{
PopulateSubjects(int.Parse(ddlYearLevel.SelectedItem.Value));
PopulateStudent(int.Parse(ddlSubjects.SelectedValue),
int.Parse(ddlYearLevel.SelectedValue));
}
選択した YearLevel の Subjects の既存のレコードがある場合、問題はありません。
しかし、サブジェクトの既存のレコードがない場合、「入力文字列が正しい形式ではありませんでした」というエラーが表示されます。
私の問題は、レコードがない場合に値を null に設定するにはどうすればよいですか?
会計年度:
private void PopulateSubjects(int yearLevel)
{
con1.Open();
SqlCommand com = new SqlCommand();
com.Connection = con1;
com.CommandType = CommandType.Text;
com.CommandText =
"SELECT Subjects.SubjectID, Subjects.SubjectCode, Subjects.YearID " +
"FROM Subjects WHERE Subjects.YearID = " + yearLevel;
SqlDataReader data = com.ExecuteReader();
if (data != null)
{
ddlSubjects.DataSource = data;
ddlSubjects.DataValueField = "SubjectID";
ddlSubjects.DataTextField = "SubjectCode";
ddlSubjects.DataBind();
}
else
lblAdd.Text = "No records found!";
data.Close();
con1.Close();
con1.Dispose();
}
private void PopulateYearLevel()
{
con5.Open();
SqlCommand com = new SqlCommand();
com.Connection = con5;
com.CommandType = CommandType.Text;
com.CommandText =
"SELECT * FROM YearLevels";
SqlDataReader data = com.ExecuteReader();
ddlYearLevel.DataSource = data;
ddlYearLevel.DataValueField = "YearID";
ddlYearLevel.DataTextField = "YearLevel";
ddlYearLevel.DataBind();
data.Close();
con5.Close();
con5.Dispose();
}