validacion usando seleccionar otras multiple modificar llena listas listado lista extraer dinamicas desplegables desplegable dependientes datos dato condicionada columnas celdas buscav automaticamente autocompletar .net sql-server visual-studio-2008 drop-down-menu

.net - usando - cómo insertar el ID de una lista desplegable de una tabla en otra tabla



lista desplegable excel condicionada (2)

Estoy publicando una alternativa a mi otra respuesta en caso de que, por algún motivo, no desee vincular el product_Category_ID a la lista desplegable. Agregue la siguiente función al código detrás de su página.

Private Function GetProductCategoryID(ByVal productCategoryName As String) As Int32 Dim id As Int32 Dim connectionString As String = "" ''your connection string Using connection As New SqlConnection(connectionString) connection.Open() Using Adapter As New SqlDataAdapter("SELECT Product_Category_ID FROM ProductCategory WHERE Product_Category_Name = @Name", connection) Dim table As New DataTable() Adapter.SelectCommand.Parameters.AddWithValue("@Name", productCategoryName) Adapter.Fill(table) If (table.Rows.Count = 0) Then Using command As New SqlCommand("INSERT ProductCategory (Proudct_Category_Name) VALUES (@Name) SELECT SCOPE_IDENITTY()", connection) command.Parameters.AddWithValue("@Name", productCategoryName) id = Convert.ToInt32(command.ExecuteScalar()) End Using Else id = Convert.ToInt32(table.Rows(0).Item(0)) End If End Using connection.Close() End Using Return id End Function

Entonces solo tendrías que cambiar una línea en tu código actual:

cmd.Parameters.Add(New SqlParameter("@product_category_id", (ddlProductCategoryName2.selectedValue)))

a

cmd.Parameters.Add(New SqlParameter("@product_category_id", GetProductCategoryID(ddlProductCategoryName2.selectedValue)))

No hay ninguna razón para que la lógica detrás de esta función no se pueda hacer enteramente en SQL (es decir, si existe una entrada en la tabla para la cadena seleccionada use la ID; de lo contrario, insértela y obtenga la ID), pero ya di soluciones SQL aquí , así que pensé que daría soluciones de VB esta vez.

  • Tengo 2 tablas, producto y categoría de producto
  • 1 lista desplegable que se enlaza mediante programación a ProductCategory
  • Estoy trabajando en Visual Studio 2008, ASP.Net Forms
  • Los usuarios pueden crear nuevos ProductCategory, es decir. product_category_id se autoevaluó
  • Necesito hacer una declaración de inserción
  • Tengo el siguiente código
  • La pregunta es, ¿cómo puedo garantizar que el ''product_category_id'' de ProductCategory se inserta en product_category_id de Product después de una selección / no selección en la lista desplegable, mientras se muestra product_category_name of ProductCategory? (FK)

    Dim sql2 As String = "INSERT INTO Product (product_category_id, product_title, product_title, product_desc, product_author, product_author_age, product_author_desc, product_other_detail, product_dimension1, product_dimension2, product_price, product_institution, product_status, product_delivery_time) VALUES (@product_category_id, @product_name, @product_title, @ product_desc, @product_author, @product_author_age, @product_author_desc, @product_other_detail, @ product_dimension1, @ product_dimension2, @product_price, @product_institution, @product_status, @product_delivery_time)

    cmd.CommandText = sql2 cmd.CommandType = CommandType.Text

''la siguiente declaración es incorrecta, creo?

cmd.Parameters.Add(New SqlParameter("@product_category_id", (ddlProductCategoryName2.selectedValue))) cmd.Parameters.Add(New SqlParameter("@product_category_name", (ddlProductCategoryName2.SelectedValue))) cmd.Parameters.Add(New SqlParameter("@product_name", (txtProductName2.Text))) cmd.Parameters.Add(New SqlParameter("@product_title", (txtProductTitle2.Text))) cmd.Parameters.Add(New SqlParameter("@product_desc", (txtProductDescription2.Text))) cmd.Parameters.Add(New SqlParameter("@product_author", (txtProductAuthor2.Text))) cmd.Parameters.Add(New SqlParameter("@product_author_age", (ddlProductAuthorAge2.SelectedValue))) cmd.Parameters.Add(New SqlParameter("@product_author_desc", (txtProductAuthorDesc2.Text)))


Por lo que puedo decir, no hay ninguna razón por la cual su SQL / VB no funcione como se requiere, solo necesita cambiar ligeramente el enlace de datos en la lista desplegable. En el método de carga de página, llame a algo similar a lo siguiente (he tenido que asumir los nombres de sus columnas):

dim adapter as new SqlDataAdapter("SELECT * FROM ProductCategory", [connectionstring]) dim table as new DataTable() adapter.fill(table) ddlProductCategoryName2.DataSource = table ddlProductCategoryName2.DataValueField = "Product_Category_ID" ddlProductCategoryName2.DataTextField = "Product_Category_Name"

Esto significará que

ddlProductCategoryName2.selectedValue

devolverá el product_category_ID en lugar del nombre que se muestra en la lista desplegable.