DropDownList从数据库product_T表取pname字段。用户选择后取出相应的pname记录。放在DAtalist里显示。单个控件我都搞懂了 两个放在一起就是不行!望高手指点。

解决方案 »

  1.   

    你的意思是DAtalist里显示的是DropDownList里选择的记录吗?
    如果这个意思的话可以这样做
    DropDownList的数据源是product_T的全部记录
    DAtalist的数据源中的Sql语句加下面的条件
    "Select * From product_T Where pname like '" + DropDownList.SelectValue + "'"
    在每次选择完 DropDownList 中的内容并提交后都重新绑定DAtalist
      

  2.   

    product_T里有pname picture intro 和detail四个字段
    根据Dropdownlist里选择的pname 取出另三个字段捆绑到datalist
    基本上就是楼上所说的意思。
    我是定义了一个变量pname
    string pname=DropDownList.SelectedItem.text;
    然后DAtalist的数据源中的Sql语句 
    "Select * From product_T Where pname = '" + pname + "'";
    这样不行吗?
    还有 什么叫每次选择完都要重新绑定datalist?
      

  3.   

    每次你的下拉菜单变化了,肯定要从新重数据库读取数据,然后给datalist
    你在dropdownlist的
     Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
    ‘这里绑定你的数据
    data()
        End Sub
    sub data()
    ....
    "Select * From product_T Where pname = '" + pname + "'";
    ....
    datalist databind()end sub
    然后dropdownlist的AutoPostBack=true
      

  4.   

    不重新填充dataset也可以
    可以用dataview的rowfilter来选取记录
      

  5.   

    '填充dropdownlist 
     Dim conn As New OleDbConnection("Data Source=""" & Me.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings("database")) & """;Provider=""Microsoft.Jet.OLEDB.4.0"";User ID=Admin")
                    Dim drmycom As New OleDbDataAdapter("SELECT NewTypeID, NewTypeName, NewOrderBy FROM T_NewType ORDER BY NewTypeName", conn)
                    Dim drmycomdr As New DataSet
                    drmycom.Fill(drmycomdr)                Me.DropDownList1.DataSource = drmycomdr
                    Me.DropDownList1.DataTextField = "NewTypeName"
                    Me.DropDownList1.DataValueField = "NewTypeID"
                    Me.DropDownList1.DataBind()
                    Me.DropDownList1.Items.Insert(0, New ListItem("------请选择新闻类别------", 0))
                    bindgrid()
    '根据dropdownlist来选择所需要的记录
     Sub bindgrid()
            Dim conn As New OleDbConnection("Data Source=""" & Me.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings("database")) & """;Provider=""Microsoft.Jet.OLEDB.4.0"";User ID=Admin")
            Dim mystr As String
            If Me.DropDownList1.SelectedValue = "0" Then
                mystr = "SELECT T_News.NewsID, T_News.NewsTitle, T_News.NewTypeID, T_NewType.NewTypeName, T_News.ReadCount, T_News.AddTime FROM (T_News INNER JOIN T_NewType ON T_News.NewTypeID = T_NewType.NewTypeID) order by T_News.NewsID desc"        Else
                mystr = "SELECT T_News.NewsID, T_News.NewsTitle, T_News.NewTypeID, T_NewType.NewTypeName, T_News.ReadCount, T_News.AddTime FROM (T_News INNER JOIN T_NewType ON T_News.NewTypeID = T_NewType.NewTypeID) WHERE (T_News.NewTypeID =" & Me.DropDownList1.SelectedValue & ") ORDER BY T_News.NewsID DESC"        End If
            Dim mycom As New OleDbDataAdapter(mystr, conn)
            Dim ds As New DataSet
            mycom.Fill(ds)        Me.Label4.Text = "共查询到 " + (ds.Tables(0).Rows.Count).ToString() + " 个记录"        Me.DataGrid1.DataSource = ds
            Me.DataGrid1.DataBind()
            ShowStats()
            conn.Close()
        End Sub
      

  6.   

    Me.DropDownList1.Items.Insert(0, New ListItem("------请选择新闻类别------", 0))
    这个是我自己加的,意思是显示所有的内容
      

  7.   

    谢谢szabcd(.net) 我用C# 不用VB。NET
    你的代码我大致看懂了 有个问题 你的代码能实现功能:选择产品后 datagrid自动显示数据吗?
    我现在就卡在这里了 我是用datalist绑定数据 不知道怎样把DropDownList1.SelectedValue 作为关键字查询出相应数据
    十万火急!
      

  8.   

    Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
            Me.DataGrid1.CurrentPageIndex = 0
            bindgrid()
        End Sub看,这里重新邦定数据,把dropdownlist的autopostback设置成true
      

  9.   

    问题已解决 只要把dropdownlist取数据的语句写在page_load里 把datalist数据绑定的语句写在Button1_click里就可以了!
      

  10.   

    又有新问题 C#的SQL 插入语句应该怎么写的??
    有答案马上结帖!
      

  11.   

    string insert="insert into product_T (pname,picture,intro,detail) value (ball, ball.jpg, basketball, xxx)"; 可以简写为:
    string insert="insert into product_T value (ball, ball.jpg, basketball, xxx)";
      

  12.   

    具体的 从数据库建立连接开始 
    好象INSERT和SELECT不一样的