我输入 dim cmd as new oledbcommand("select * from kaikejihua where 专业名称='电子商务'",co)可以正确显示可改成变量输入如下,无法正确查询
 dim cmd as new oledbcommand("select * from kaikejihua where 专业名称='dd2.selecteditem.value'",co)
              以下是代码部分,请各位指教一二谢谢
              
<%@ Page Language="vb" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">    Sub chouse_xi(sender As Object, e As EventArgs)
          dim chouse() as string={""}
          dim zhuanye1() as string={"请选择...","会计学","统计学"}
          dim zhuanye2() as string={"请选择...","计算机信息管理","电子商务","计算机科学与技术"}
          if dd1.selecteditem.value="会计" then
            dd2.datasource=zhuanye1
            dd2.databind
            else if dd1.selecteditem.value="信息科学技术"
            dd2.datasource=zhuanye2
            dd2.databind
            else if dd1.selecteditem.value="请选择"
            dd2.datasource=chouse
            dd2.databind
            end if          End Sub
    Sub chouse_zhuanye(sender As Object, e As EventArgs)
  
dim sqlstr as string
          Dim co As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("jwch.mdb"))
          'sqlstr="select * from kaikejihua where 专业名称='" & dd2.selecteditem.Text & "'
  'sqlstr="select * from kaikejihua where 专业名称='dd2.selecteditem.value'"
           dim cmd as new oledbcommand("select * from kaikejihua where 专业名称='dd2.selecteditem.value'",co)
              err.text=dd2.selecteditem.value
          'dim cmd as new oledbcommand(sqlstr,co)
          co.open()
          dim dr as oledbdatareader=cmd.executereader()
          message.text="<table width='90%' border='1'><tr bgcolor='#ff00f0'><td>系别</td><td>专业名称</td><td>课程名称</td><td>课型</td><td>总学时</td><td>学分</td><td>学期</td></tr>"
             Do While dr.Read()
                   message.Text &= "<tr>"
                   message.Text &= "<td>" & dr.Item("系别") & "</td>"
                   message.Text &= "<td>" & dr.Item("专业名称") & "</td>"
                   message.Text &= "<td>" & dr.Item("课程名称") & "</td>"
                   message.Text &= "<td>" & dr.Item("课型") & "</td>"
                   message.Text &= "<td>" & dr.Item("总学时") & "</td>"
                   message.Text &= "<td>" & dr.Item("学分") & "</td>"
                   message.Text &= "<td>" & dr.Item("学期") & "</td>"
                   message.Text &= "</tr>"
              Loop
              message.text &= "</table>"
              'co.Close()
          End Sub</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        <p align="center">
            <asp:Label id="Label1" runat="server">系别:</asp:Label>
            <asp:DropDownList id="dd1" runat="server" AutoPostBack="True" onselectedindexchanged="chouse_xi">
                <asp:ListItem Value="请选择">请选择...</asp:ListItem>
                <asp:ListItem Value="会计">会计</asp:ListItem>
                <asp:ListItem Value="信息科学技术">信息科学技术</asp:ListItem>
            </asp:DropDownList>
        </p>
        <p align="center">
            <asp:Label id="Label2" runat="server">专业名称:</asp:Label>
            <asp:DropDownList id="dd2" runat="server" AutoPostBack="True" onselectedindexchanged="chouse_zhuanye"></asp:DropDownList>
        </p>
        <center><asp:Label id="message" runat="server"></asp:Label>
        </center>
        <center>&nbsp;<asp:Label id="err" runat="server">Label</asp:Label>
        </center>
    </form>
</body>
</html>

解决方案 »

  1.   

    时序不对,把chouse_xi放到Page_OnLoad里去。
      

  2.   

    是出错还是反回空记录??"select * from kaikejihua where 专业名称='dd2.selecteditem.value'"
    改为:
    "select * from kaikejihua where 专业名称 = '" + dd2.selecteditem.value "'"
    试试.
      

  3.   

    dim cmd as new oledbcommand("select * from kaikejihua where 专业名称='dd2.selecteditem.value'",co)
    应该是
               dim cmd as new oledbcommand("select * from kaikejihua where 专业名称='" & dd2.selecteditem.value & "'",co)
      

  4.   

    dim cmd as new oledbcommand("select * from kaikejihua where 专业名称='" & dd2.selecteditem.value & "'",co)