private void Page_Load(object sender, System.EventArgs e)
{
SqlConnection myConnection; myConnection = new SqlConnection("server=localhost;uid=hgx;password=hgx;database=pubs;Trusted_Connection=yes");
        
if (!IsPostBack) 
{SqlDataAdapter myCommand = new SqlDataAdapter("select distinct State from Authors", myConnection);DataSet ds = new DataSet();
myCommand.Fill(ds, "States");
MySelect.DataSource= ds.Tables["States"].DefaultView;
MySelect.DataTextFiled="列名";
MySelect.DataBind();
}

}

解决方案 »

  1.   

    <select id="MySelect" DataTextField="State"  runat="server">

    </select>这是我的select的写法,
    列名我这样写,提示错误,MySelect.DataTextFiled="state";我这样写不对吗?
      

  2.   

    MySelect.DataTextFiled="State";
    大写啊!
      

  3.   

    编译出什么错啊?哪行出错啊?
    好像还少了MySelect.DataValueFiled="列名"
      

  4.   

    State 是你的列吗?在这里必需为列名字段...MySelect.DataTextFiled=ds.Tables["States"].Columns[0].ToString();//第O列列名
      

  5.   

    这样 MySelect.DataTextField="state" 不是DataTextFiled
      

  6.   

    to smilnet(笨笨):还是提示那行错误,我照着你的写的,
    MySelect.DataTextFiled=ds.Tables["States"].Columns[6].ToString(); 
    这是我写的
      

  7.   

    编译器错误信息: CS0117: “System.Web.UI.HtmlControls.HtmlSelect”并不包含对“DataTextFiled”的定义
    源错误:
    行 24: 
    行 25:  MySelect.DataSource= ds.Tables["States"].DefaultView;
    行 26:  MySelect.DataTextFiled=ds.Tables["States"].Columns[6].ToString();
    行 27: 
    行 28:  MySelect.DataBind();源文件: http://localhost:6688/0617/myselect2.aspx    行: 26 
      

  8.   

    你不要用htmlSelect用DropDownList
      

  9.   

    MySelect.DataTextFiled应该是
    MySelect.DataTextField吧
      

  10.   

    还有就是GetAuthors_Click方法中是MySelect.Value
    那应该是
    MySelect.DataValueField=ds.Tables["States"].Columns[6].ToString();
      

  11.   

    你好,看到你給我的留言,我給你看看一個綁定DropDownList控件的例子,我用的是vb+access的,你自已改一改就可以了,還有,你的代碼("select distinct State from Authors", myConnection);中的"distinct State "會不會有點問題?
    你自已試著做看看,如有問題,再問我.當你把數據綁定到Dropdownlist后,在DataGrid中顯示選定的作者的內容就比較簡單了.Good Luck!<%@ Page Language="vb" Debug="true" %>
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.OleDb" %><script language="VB" runat="server">
    dim MyConnection as OleDbConnection
    dim cmdSelect as OleDbCommand
    dim dtrReader as OleDbDataReader
    Sub Page_load(sender as object,e as Eventargs)
        MyConnection = New OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" + Server.MapPath(".")+"/db/datagrid.mdb")  'Myconnection.close   'when the database is opened.
        if not IsPostBack() then
       DropDownList_BindGrid()  'bind dropdownlistr
    end if
    End SubSub DropDownList_BindGrid()
        CmdSelect=new OleDbCommand("select * from class order by id",MyConnection)
        MyConnection.Open()
    dtrReader=CmdSelect.ExecuteReader() dropnews.DataSource=dtrReader
    dropnews.DataTextField="bigclass"
    dropnews.DataValueField="bigclassid"
    dropnews.DataBind()
    dtrReader.Close()
    MyConnection.Close()
    End SubSub Dropnews_SelectedIndexChanged(s as Object,e as EventArgs)
        Response.write(dropnews.SelectedValue)
    Response.write("<BR>")
        Response.write(dropnews.SelectedItem)
    End Sub
    </script><form Runat="server"> 
      <asp:dropdownlist id="dropnews" AutoPostBack="true" OnSelectedIndexChanged="dropnews_SelectedIndexChanged" runat="server"/>
    </form>
      

  12.   

    MySelect.DataValueField=ds.Tables["States"].Columns[6].ToString();
    我改成上面的,怎么提示:
    异常详细信息: System.IndexOutOfRangeException: 无法找到列 6。
    源错误: 
    行 24: 
    行 25:  MySelect.DataSource= ds.Tables["States"].DefaultView;
    行 26:  MySelect.DataTextField=ds.Tables["States"].Columns[6].ToString();
    行 27: 
    行 28:  MySelect.DataBind();
     源文件: G:\jsb\0617\myselect2.aspx    行: 26 
      

  13.   

    这就是你自己的问题了,应该是Columns[6]那里没数据,还有前面的错误,DataTextField写成
    DataTextFiled,你用的不是VS.NET么?代码完全手写么?你的错误都是有点因为自己想当然的错误.
      

  14.   

    MyDataGrid.DataSource= ds.Tables["作者"].DefaultView;
    MyDataGrid.DataTextField = "UserName";//UserName为你要显示的字段名
    MyDataGrid.DataValueField = "UserId";//为你要选中返字段值的字段名。
    MyDataGrid.DataBind();
      

  15.   

    MySelect.DataSource= ds.Tables["States"].DefaultView;
    MySelect.DataTextField = "TextField";//TextField为你要显示的字段名
    MySelect.DataValueField = "ValueField";//为你要选中返字段值的字段名
    MySelect.DataBind();
      

  16.   

    异常详细信息: System.IndexOutOfRangeException: 无法找到列 6。
    源错误: 
    行 25:  MySelect.DataSource= ds.Tables["States"].DefaultView;
    行 26:  MySelect.DataTextField="State";
    行 27:  MySelect.DataValueField=ds.Tables["States"].Columns[6].ToString();
    行 28:  MySelect.DataBind();
    源文件: G:\jsb\0617\myselect2.aspx    行: 27 
    总是说第6列错误,这个数据表就是sql server自带的呀,数据库为pubs,数据表为authors,state确实为第六列呀!
      

  17.   

    改好了,我把下面的语句
    MySelect.DataValueField=ds.Tables["States"].Columns[6].ToString();
    改成
    MySelect.DataValueField=“state”;
    就好了,可是用原来的那个就不行,奇怪?
      

  18.   

    这有什么好奇怪的,你可以把ds.Tables["States"].Columns[6].ToString();的值给Label显示出来看看是什么,如果提示6处没数据,就看ds.Tables["States"].Columns[0].ToString();
    看了你或许就明白怎么回事了,还是那句话,有些东西在你没理解前,你有点想当然了.