2016-08-04 17 views
0

私は、ユーザーの入力に基づいてバーコードイメージを生成するWebアプリケーションを用意しています。 ユーザーはデータベースに格納されている値を選択し、データバインドされたチェックボックスに表示されます。私の手続きは、ユーザ入力値をデータベースに問題なく挿入しますが、データベースに新しいデータを作成します。私が把握しようとしているのは、ストアドプロシージャにあるのか、自分のコードにあるのかにかかわらず、Where節を決める方法です。どこのデータバインドチェックボックスを選択しても、データベースの特定の行が新しい行。気になるのは、チェックボックスのリストではなく、チェックボックスの1つだけです。チェックボックスを使用してデータベースの特定の行を更新するチェック値

protected void gen_barcode(object sender, EventArgs e) 
{ 
    int n; 
    int i = Int32.Parse(amount.Text); 

    string date_picker = datepicker.Text; 

    SqlConnection conn = new SqlConnection(GetConnectionString()); 

    SqlCommand cmd = new SqlCommand(); 
    cmd.Connection = conn; 

    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.CommandText = "barcode_insert" 
    cmd.Parameters.AddWithValue("@Amount", amount.Text); 
    cmd.Parameters.AddWithValue("@Date", datepicker); 

    if (CheckBox_Code.Checked) 
    { 
      //generate image code 
    } 

    cmd.Connection.Open(); 
    cmd.ExecuteNonQuery(); 
    conn.Close(); 
} 

チェックボックスをバインド

public void CheckBoxBind() 
{ 
    SqlConnection conn = new SqlConnection(GetConnection()); 

    using (SqlCommand cmd = new SqlCommand()) 
    { 

     cmd.CommandText = "Select CheckBoxCode FROM CodeTable Where CheckBoxCode LIKE 'EX'" 
     cmd.Connection = conn; 
     conn.Open(); 

     using (SqlDataReader rdr = cmd. ExecuteReader()) 
     { 
      while (rdr.Read() 
      { 
      CheckBox_Code.Text = rdr["CheckBoxCode"].ToString() 
      cmd.Parameters.AddWithValue("@CheckBoxCode", CheckBox_Code) 
      } 
     } 

     conn.Close(); 
    } 

} 

答えて

0

あなたCheckBoxBindの6行目()select文でパラメータ名を使用する必要があります。

cmd.CommandText = "Select CheckBoxCode FROM CodeTable Where CheckBoxCode = @CheckBoxCode

+0

実は、私の最初のコードが間違っていました実際にはCheckBoxCode LIKE 'EX'のようになっているので、もちろんそれを使って宣言エラーが発生します。私はそれを反映するようにコードを編集します。 – walangala

関連する問題