私はここで初心者で、映画を追跡するためのデータベースを構築しています(練習用)。とにかく、チェックボックス リストを使用してジャンル (アクション、コメディ、ドラマ、ホラーなど) を入力しています。チェックボックスリストを取得してdbテーブルに保存し、保存した結果を取得してチェックボックスリストをプリロードすることができましたが、問題は新しいジャンルのチェックを外してチェックし、dbに保存できることです。
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ステートメントを作成するにはどうすればよいですか? ありがとう。