C# 数据绑定下拉列表

C# 数据绑定下拉列表,c#,asp.net,database,data-binding,C#,Asp.net,Database,Data Binding,当我尝试对dropdownlist进行数据绑定时,得到了以下信息:system.data.datarowview 我错了什么 string strQuery = "Select Item FROM Calendar Where UserD="Test"; SqlConnection myConn; SqlDataAdapter sqlDa = new SqlDataAdapter(strQuery,myConn); DataTable sqlTa = new DataTable("Tes

当我尝试对
dropdownlist
进行数据绑定时,得到了以下信息:
system.data.datarowview

我错了什么

 string strQuery = "Select Item FROM Calendar Where UserD="Test";
 SqlConnection myConn;
 SqlDataAdapter sqlDa = new SqlDataAdapter(strQuery,myConn);
 DataTable sqlTa = new DataTable("Test");
 da.Fill(sqlTa);
 ddlList.DataSource = sqlTa;
 ddlList.DataBind();
注意,您需要在字符串周围使用单引号,因为在代码中,您从未完成初始字符串,所以代码的其余部分只是strQuery的一部分

此外如果将来带回多个字段,绑定下拉列表时,需要指定数据库中哪个字段是值,哪个字段是显示的文本

ddlList.DataSource = sqlTa;
ddlList.DataValueField = "ValueFieldFromDatabaseResults";
ddlList.DataTextField = "ShownTextFieldFromDatabaseResults";
ddlList.DataBind();

您需要告诉它使用哪些字段作为值和文本

ddlList.DataSource = sqlTa;
ddlList.DataValueField = "ValueField";
ddlList.DataTextField = "TextField";
ddlList.DataBind();
并且您的select语句缺少“.”,它应该是:

"Select Item FROM Calendar Where UserD='Test'"
例如:

正如ryan所指出的,如果你要收回一个字段,那么你可以:

        DataTable dtTable = new DataTable();

        try
        {
            using (SqlConnection sqlConnection = new SqlConnection("Your connection"))
            {
                using (SqlCommand sqlCommand = new SqlCommand("Select Item FROM Calendar Where UserD='Test'", sqlConnection))
                {
                    sqlConnection.Open();

                    using (SqlDataReader sqlDataReader = sqlCommand.ExecuteReader())
                    {
                        dtTable.Load(sqlDataReader);
                        sqlDataReader.Close();
                    }
                }
            }
        }
        catch (Exception error)
        {
            throw error;
        }

        ddlList.DataSource = dtTable;
        ddlList.DataBind();
但如果您有多个字段,则可以执行以下操作:

        DataTable dtTable = new DataTable();

        try
        {
            using (SqlConnection sqlConnection = new SqlConnection("Your connection"))
            {
                using (SqlCommand sqlCommand = new SqlCommand("Select Item, id FROM Calendar Where UserD='Test'", sqlConnection))
                {
                    sqlConnection.Open();

                    using (SqlDataReader sqlDataReader = sqlCommand.ExecuteReader())
                    {
                        dtTable.Load(sqlDataReader);
                        sqlDataReader.Close();
                    }
                }
            }
        }
        catch (Exception error)
        {
            throw error;
        }

        ddlList.DataSource = dtTable;
        ddlList.DataValueField = "id";
        ddlList.DataTextField = "item";
        ddlList.DataBind();
试试这个

 ddlList.DataSource = sqlTa;                 
 ddlList.DataTextField = "class";
 ddlList.DataBind();
添加
ddList.Value=“somefield”
是可选的

ddlList.DataSource = sqlTa;
ddlList.DataValueField = "ValueFieldFromDatabaseResults";
ddlList.DataTextField = "ShownTextFieldFromDatabaseResults";
ddlList.DataBind();
然后你错过了连接字符串

SqlConnection myConn="must add your connection string code here "
您尚未打开连接字符串,因此

添加myconn.open()

为了


你能给我举个例子吗?@Stephen因为他只从数据库中带回一个字段,你不需要指定值或文本字段。你在哪里绑定你的下拉列表?这在页面加载中吗?
SqlConnection myConn="must add your connection string code here "
 SqlConnection myConn="must add your connection string code here "
`myconn.open()`
 SqlDataAdapter sqlDa = new SqlDataAdapter(strQuery,myConn)