我的源代码是这样的:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!this.IsPostBack)
{
DataShow();
}
} public void DataShow()
{
SqlConnection strConn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["strConnection"]);
SqlCommand cmd = new SqlCommand("select jdName from jiudianinfo",strConn);
strConn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DropDownListJdName.DataSource = dr;
DropDownListJdName.DataTextField = "jdName";
DropDownListJdName.DataBind();
DropDownListJdName.Items.Insert(0,new ListItem("请选择",string.Empty));
strConn.Close(); }
可是问什么每次选择了都是显示第一条数据呢  DropDownList的autopostback属性为true

解决方案 »

  1.   

    selectindexchanged事件有没有重新绑定?建议你单步跟踪下运行过程
      

  2.   

    selectindexchanged里面我还没写任何代码呢 是空着的
    我现在的vs调试不了 还不知道怎么回事
      

  3.   

    你的datavaluefield没有绑定字段么?
      

  4.   

    是不是这句有问题DropDownListJdName.Items.Insert(0,new ListItem("请选择",string.Empty));
      

  5.   

    代码看起来是没什么问题。试试用另外的方法,把要绑定的数据从数据库里取出来后用一张DataTable返回,然后在返回的DataTable的第一行前面插入"请选择:"
      

  6.   

    private void Submit1_ServerClick(object sender, System.EventArgs e)
    {
    SqlConnection strConn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["strConnection"]);
    strConn.Open();
    string mysql = "select * from jiudianinfo where jdId=@userid and jdName=@jdname and jdPass=@jdpass";
    SqlCommand strCom = new SqlCommand(mysql,strConn);
    strCom.Parameters.Add(new SqlParameter("@userid",SqlDbType.VarChar,20));
    strCom.Parameters["@userid"].Value = TextUserId.Value;
    strCom.Parameters.Add(new SqlParameter("@jdname",SqlDbType.VarChar,50));
    strCom.Parameters["@jdname"].Value = jdName;
    strCom.Parameters.Add(new SqlParameter("@jdPass",SqlDbType.VarChar,40));
    strCom.Parameters["@jdPass"].Value = TextPwd.Text;
    SqlDataReader dr = strCom.ExecuteReader();
    if(dr.Read())
    {
    Response.Redirect("jiudianshow.aspx",true);
    }
    else
    {
    lbl_message.Text = "对不起,您的用户名/密码不正确,请重新输入";
    }
    strConn.Close();
    }
      

  7.   

    还有一个办法就是
    <asp:dropdownlist .......>
      <listitem value="0" text="请选择">
         ;;;;;;
      </asp>
    将你每次选择的数据插入到第一个.
    DropDownListJdName.Items.Insert(0,DropDownListJdName.selectedItem.Text);
      

  8.   

    DropDownListJdName.Items.Insert(0,DropDownListJdName.selectedItem.Text);
    写在哪里啊 我把他放在selectindexchanged事件里面 可是无论选什么 都只加了第一条数据“请选择”
      

  9.   

    你贴出的代码和dropdownlist没有关系,现在可以确定和这个过程没有关系,那么我建议你新建一个页面重新再写下代码
      

  10.   

    你的datavaluefield没有绑定字段,这个行么,你确定你的操作不会用到这个么?
      

  11.   

    DropDownListJdName.Items.Insert(0,DropDownListJdName.selectedItem.Text);
    你先不写这句看选择的时候会不会变化
      

  12.   

    datavaluefield一定要绑定字段吗?
    我暂时还不需要用到 那我绑定了试试
    DropDownListJdName.Items.Insert(0,DropDownListJdName.selectedItem.Text);
    我不写这句也是无论怎么选择都是显示第一项
      

  13.   

    你先把数据库中查询出的数据放在dataset中吧 然后这样帮定DataTable dt = DataSet1.Tables[0];
    DropDownListJdName.DataSource = dt;
    DropDownListJdName.DisplayMember = dt.Columns[1].ColumnName;
    DropDownListJdName.ValueMember = dt.Columns[0].ColumnName;
      

  14.   

    真的试这个问题啊 我没绑定datavaluefield 刚刚试了绑定了一个字段就可以了
    真是神奇啊
    谢谢 各位 !刚学习 以后可能还有很多问题请教
      

  15.   

    应该要datavaluefield吧,好像选择的时候是根据value来选择的
      

  16.   

    哦 随便问一下 我一启动调试 就报无法在web服务器上启动调试 未将项目配置为进行调试 是怎么回事啊
      

  17.   

    你首先确定你的程序在iis管理器中的属性对话框中应用程序设置中该应用程序已经被创建!
      

  18.   

    是被创建了 我不知道是不是我的iis和vs的安装顺序不对引起的 我好像是先装vs再装的iis
      

  19.   

    其次你试着用C:\WINDOWS\Microsoft.NET\Framework\v1.1.nnnn\aspnet_regiis -i 在系统的command下运行
      

  20.   


    下次记着 要先装iis再安装vs
      

  21.   

    开始/运行/输入cmd -然后输入C:\WINDOWS\Microsoft.NET\Framework\v1.1.nnnn\aspnet_regiis -i 
    注意v1.1nnnn是你的asp.net版本号 ,一般如果你是vs2003的话就应该是v1.1.4322!
      

  22.   

    C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis -i 是都是在这个路径
    还是安装时候的路径
    我的系统是2003 装在D盘 C盘是98 vs2003装在F盘
    我刚刚运行的时候提示找不到路径
      

  23.   

    汗,大哥你也要变通下吧!就那个盘符是当前使用vs。net所在盘!
      

  24.   

    你首先进入那个目录下面看能否找到aspnet_regiis.exe可执行程序!
      

  25.   

    我找到了
    我直接这样运行了这个aspnet_regiis.exe程序 但还是不可以
      

  26.   

    我已经在cmd中运行了你上面告诉的命令
    它提示了开始安装到最后完成安装asp.net(1.1.4322.0)可我还是不能调试
      

  27.   

    那么你先 \WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis -u
    然后再 \WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis -i
      

  28.   

    汗 你没有数据源啊
    哪来的数据?SqlDataReader要保持连接才能用,要一自己写代码一条条的读才
    行吗?
    用DataView or DataTable就没问题了