dropdownlist chỉ trả về giá trị đầu tiên

0 thích 0 không thích
219 lượt xem
đã hỏi 20 Tháng 1, 2016 trong Lập trình Web bởi trongtaytaasd (450 điểm)
mình lập trình asp.net bằng vb nhưng đang bị mắc ở cái chỗ dropdownlist này. nó không trả về giá trị mình chọn mà toàn trả về cái giá trị đầu tiên. ai giúp mình với.
    

5 Câu trả lời

0 thích 0 không thích
đã trả lời 20 Tháng 1, 2016 bởi Thảo Meo (3,890 điểm)
Bạn có thể up source code và hình ảnh lỗi lên để mọi người dễ dàng hướng dẫn cho bạn nha.
0 thích 0 không thích
đã trả lời 20 Tháng 1, 2016 bởi trongtaytaasd (450 điểm)

chủ yếu là khi mình chọn giá trị từ thứ 2 trở đi trong dropdownlist thì nó chỉ ghi giá trị đầu tiên vào trong SQL thôi.

đây là code dropdownlist ở form load


'Dropdownlist T_Monhoc
        Dim sql1 = "Select * from T_Monhoc"
        Dim dtmonhoc As New DataTable("T_Monhoc")
        Dim damonhoc As New SqlDataAdapter(sql1, cnn)
        damonhoc.Fill(dtmonhoc)
        With ddlmonhoc
            .DataSource = dtmonhoc
            .DataTextField = "Ten"
            .DataValueField = "ID_Monhoc"
            .DataBind()
        End With
        'DropDownList T_Phong
        Dim sql2 = "Select * from T_Phong"
        Dim dtphong As New DataTable("T_Phong")
        Dim daphong As New SqlDataAdapter(sql2, cnn)
        daphong.Fill(dtphong)
        With ddlphong
            .DataSource = dtphong
            .DataTextField = "ID_Phong"
            .DataValueField = "ID_Phong"
            .DataBind()
        End With
        'DropDownList T_Giaovien
        Dim sql3 = "Select * from T_Giaovien"
        Dim dtgv As New DataTable("T_Giaovien")
        Dim dagv As New SqlDataAdapter(sql3, cnn)
        dagv.Fill(dtgv)
        With ddlgv
            .DataSource = dtgv
            .DataTextField = "Ten"
            .DataValueField = "ID_Giaovien"
            .DataBind()
        End With
        'DropDownList T_Lop
        Dim sql4 = "Select * from T_Lop"
        Dim dtlop As New DataTable("T_Phong")
        Dim dalop As New SqlDataAdapter(sql4, cnn)
        dalop.Fill(dtlop)
        With ddllop
            .DataSource = dtlop
            .DataTextField = "ID_Lop"
            .DataValueField = "ID_Lop"
            .DataBind()
        End With


0 thích 0 không thích
đã trả lời 20 Tháng 1, 2016 bởi trongtaytaasd (450 điểm)

đây là code nhập vào SQL - mình dùng store


If (cbthu_2.Checked = True And cbthu_3.Checked = True And cbthu_4.Checked = True And cbthu_5.Checked = True And cbthu_6.Checked = True And cbthu_7.Checked = True And cbthu_cn.Checked = True) Or (cbthu_2.Checked = True Or cbthu_3.Checked = True Or cbthu_4.Checked = True Or cbthu_5.Checked = True Or cbthu_6.Checked = True Or cbthu_7.Checked = True Or cbthu_cn.Checked = True) Then
            If (cbca_s.Checked = True) Then
                cmd.Connection = cnn
                cmd.CommandText = sql1
                cmd.CommandType = CommandType.Text
                cmd.Parameters.AddWithValue("@ID_Monhoc", SqlDbType.NVarChar).Value = ddlmonhoc.SelectedItem.Text.Trim()
                cmd.Parameters.AddWithValue("@ID_Giaovien", SqlDbType.NVarChar).Value = ddlgv.SelectedItem.Text.Trim()
                cmd.Parameters.AddWithValue("@ID_Lop", SqlDbType.NVarChar).Value = ddllop.SelectedItem.Text.Trim()
                cmd.Parameters.AddWithValue("@ID_Phong", SqlDbType.NVarChar).Value = ddlphong.SelectedItem.Text.Trim()
                cmd.Parameters.AddWithValue("@Ca", SqlDbType.NVarChar).Value = Ca.Trim()
                cmd.Parameters.AddWithValue("@Tu", SqlDbType.Date).Value = Convert.ToDateTime(aspxdetu.Value.ToString())
                cmd.Parameters.AddWithValue("@Den", SqlDbType.Date).Value = Convert.ToDateTime(aspxdeden.Value.ToString())
                cmd.Parameters.AddWithValue("@Thu2", SqlDbType.NVarChar).Value = Tietthu2.Trim()
                cmd.Parameters.AddWithValue("@Thu3", SqlDbType.NVarChar).Value = Tietthu3.Trim()
                cmd.Parameters.AddWithValue("@Thu4", SqlDbType.NVarChar).Value = Tietthu4.Trim()
                cmd.Parameters.AddWithValue("@Thu5", SqlDbType.NVarChar).Value = Tietthu5.Trim()
                cmd.Parameters.AddWithValue("@Thu6", SqlDbType.NVarChar).Value = Tietthu6.Trim()
                cmd.Parameters.AddWithValue("@Thu7", SqlDbType.NVarChar).Value = Tietthu7.Trim()
                cmd.Parameters.AddWithValue("@Chunhat", SqlDbType.NVarChar).Value = Tietchunhat.Trim()
                MsgBox(sql1)
                cmd.ExecuteNonQuery()
                Response.Write("Nhập thành công")
            End If
            If (cbca_c.Checked = True) Then
                cmd.Connection = cnn
                cmd.CommandText = "nhaptkb"
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.AddWithValue("@ID_Monhoc", SqlDbType.NVarChar).Value = ddlmonhoc.SelectedItem.Text.Trim()
                cmd.Parameters.AddWithValue("@ID_Giaovien", SqlDbType.NVarChar).Value = ddlgv.SelectedItem.Text.Trim()
                cmd.Parameters.AddWithValue("@ID_Lop", SqlDbType.NVarChar).Value = ddllop.SelectedItem.Text.Trim()
                cmd.Parameters.AddWithValue("@ID_Phong", SqlDbType.NVarChar).Value = ddlphong.SelectedItem.Text.Trim()
                cmd.Parameters.AddWithValue("@Ca", SqlDbType.NVarChar).Value = Ca.Trim()
                cmd.Parameters.AddWithValue("@Tu", SqlDbType.Date).Value = Convert.ToDateTime(aspxdetu.Value.ToString())
                cmd.Parameters.AddWithValue("@Den", SqlDbType.Date).Value = Convert.ToDateTime(aspxdeden.Value.ToString())
                cmd.Parameters.AddWithValue("@Thu2", SqlDbType.NVarChar).Value = Tietthu2.Trim()
                cmd.Parameters.AddWithValue("@Thu3", SqlDbType.NVarChar).Value = Tietthu3.Trim()
                cmd.Parameters.AddWithValue("@Thu4", SqlDbType.NVarChar).Value = Tietthu4.Trim()
                cmd.Parameters.AddWithValue("@Thu5", SqlDbType.NVarChar).Value = Tietthu5.Trim()
                cmd.Parameters.AddWithValue("@Thu6", SqlDbType.NVarChar).Value = Tietthu6.Trim()
                cmd.Parameters.AddWithValue("@Thu7", SqlDbType.NVarChar).Value = Tietthu7.Trim()
                cmd.Parameters.AddWithValue("@Chunhat", SqlDbType.NVarChar).Value = Tietchunhat.Trim()
                cmd.ExecuteNonQuery()
                Response.Write("Nhập thành công")
            End If
        End If


 mình phải post ra 2 post vì dài quá

0 thích 0 không thích
đã trả lời 23 Tháng 1, 2016 bởi trongtaytaasd (450 điểm)
ai giúp mình với. nó chỉ trả giá trị đầu tiên thôi. không trả về giá trị mình chọn
0 thích 0 không thích
đã trả lời 25 Tháng 1, 2016 bởi Mr. Cùi Bắp (5,140 điểm)

Bạn kiểm tra lại hoặc debug thử xem những giá trị trong ".DataValueField" có bị trùng nhau hay không? Mình không rõ về ASP.NET nhưng trong Winform cũng bị tương tự nếu các value trong .DataValueField trùng nhau

...