<%@ Page Language="C#" Debug="True" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">    void Page_Load(object sender, EventArgs e)
    {
            OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=D:\\BegASPNET11\\" +
    "adress.mdb");
            con.Open();            OleDbCommand cmd1 = new OleDbCommand("SELECT [province].[proID], [province].[Province] FROM [province]",con);
            OleDbDataReader dataReader = cmd1.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
            province.DataSource=dataReader;
            province.DataTextField="Province";
            province.DataValueField="proID";
            province.DataBind();
            dataReader.Close();    con.Open();
            OleDbCommand cmd2=new OleDbCommand("SELECT [cityName].[proID], [cityName].[cityID], [cityName].[cityName] FROM [cityN" +
    "ame] WHERE ([cityName].[proID] =this.province.SelectedValue)",con);
            OleDbDataReader Reader = cmd2.ExecuteReader();            city.DataSource=Reader;
            city.DataTextField="cityName";
            city.DataValueField="cityID";
            city.DataBind();
            Reader.Close();
            con.Close();
    }    void province_SelectedIndexChanged(object sender, EventArgs e) {            OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=D:\\BegASPNET11\\" +
    "adress.mdb");
            con.Open();
            OleDbCommand cmd3 = new OleDbCommand("SELECT [cityName].[proID], [cityName].[cityID], [cityName].[cityName] FROM [cityN" +
    "ame] WHERE ([cityName].[proID] = province.SelectedValue)",con);
            OleDbDataReader dataReader = cmd3.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
            city.DataSource=dataReader;
    city.DataTextField="cityName";
    city.DataValueField="cityID";
    city.DataBind();
    }</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        <asp:DropDownList id="province" runat="server" OnSelectedIndexChanged="province_SelectedIndexChanged" AutoPostBack="True"></asp:DropDownList>
        &nbsp;&nbsp;
        <asp:DropDownList id="city" runat="server"></asp:DropDownList>
        <!-- Insert content here -->
    </form>
</body>
</html>错误提示:
Exception Details: System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。Source Error: 
Line 22:             OleDbCommand cmd2=new OleDbCommand("SELECT [cityName].[proID], [cityName].[cityID], [cityName].[cityName] FROM [cityN" +
Line 23:     "ame] WHERE ([cityName].[proID] =this.province.SelectedValue)",con);
Line 24:             OleDbDataReader Reader = cmd2.ExecuteReader();错误这这里!!
Line 25: 
Line 26:             city.DataSource=Reader;
 

解决方案 »

  1.   

    OleDbCommand cmd2=new OleDbCommand("SELECT [cityName].[proID], [cityName].[cityID], [cityName].[cityName] FROM [cityN" +
        "ame] WHERE ([cityName].[proID] ="+this.province.SelectedValue+")",con);
    ------------------------------------------------
    如果proID是字符型数据OleDbCommand cmd2=new OleDbCommand("SELECT [cityName].[proID], [cityName].[cityID], [cityName].[cityName] FROM [cityN" +
        "ame] WHERE ([cityName].[proID] ='"+this.province.SelectedValue+"')",con);
      

  2.   

    另外
    void Page_Load(object sender, EventArgs e)
    {
       //加上这个,并且保证this.province.SelectedValue有值
       if(!IsPostBack)
       {
           ....//你的那一堆代码
       }
    }
      

  3.   

    看了一半
    ......WHERE ([cityName].[proID] ="+this.province.SelectedValue+")",con);