我是新手,正在建立一个数据库来跟踪我的电影(用于练习)。无论如何,我使用复选框列表来输入类型(动作、喜剧、戏剧、恐怖等)。我得到了复选框列表以保存回数据库表,并且我能够获得保存的结果以预加载复选框列表但我的问题是能够取消选中并检查新类型并保存回数据库。
这是我检查 GenreCheckBox 列表中的项目并保存到 db 表中的代码。
for (int i = 0; i < GenreCheckBoxList.Items.Count; i++)
{
if (GenreCheckBoxList.Items[i].Selected)
{
cmd2.Parameters.AddWithValue("MovieID", MovieID);
cmd2.Parameters.AddWithValue("@GenreID", GenreCheckBoxList.Items[i].Value);
cmd2.Parameters.AddWithValue("Status", Status);
cmd2.ExecuteNonQuery();
cmd2.Parameters.Clear();
}
}
这是我显示以前保存的 GenreCheckBoxList 结果的方法
public void LoadGenreCheckBoxList()
{
GenreCheckBoxList.DataBind();
string MovieID = Session["MovieID"].ToString();
SqlConnection cnn = new SqlConnection("Data Source=STEVE-F32A48EEB;Initial Catalog=Sinema;Integrated Security=True");
cnn.Open();
SqlCommand cmd2 = new SqlCommand("SELECT Genre.GenreType, Genre.GenreID, GenreLine.GenreID FROM Genre INNER JOIN GenreLine ON Genre.GenreID = GenreLine.GenreID INNER JOIN Movie ON GenreLine.MovieID = Movie.MovieID WHERE GenreLine.MovieID = @MovieID AND GenreLine.Status = 1", cnn);
cmd2.Parameters.AddWithValue("@MovieID", MovieID);
cmd2.ExecuteScalar();
SqlDataReader rdr2 = cmd2.ExecuteReader();
while (rdr2.Read())
{
ListItem currentCheckBox = GenreCheckBoxList.Items.FindByValue(rdr2["GenreID"].ToString());
if (currentCheckBox != null)
{
currentCheckBox.Selected = true;
}
}
rdr2.Close();
}
现在我想做的是在我的编辑页面上显示结果之后,我希望能够取消选中一些检查或检查一些新的流派,而不是让已经选择的检查流派复制并保存回数据库.
我什至不知道从哪里开始。任何方向都会有很大帮助!如何编写 if 语句以满足如果genreCheckBoxList 已被检查然后不保存回数据库并且如果尚未检查则保存回数据库的条件?谢谢。