7

私がデータを取得しようとすると 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();
4

4 に答える 4

14
string strQuery = "Select Item FROM Calendar Where UserD='Test'";

コードでは最初の文字列を完成させていないため、文字列を一重引用符で囲む必要があることに注意してください。そのため、コードの残りの部分は strQuery の一部になりました。

さらに、今後複数のフィールドを戻す場合は、ドロップダウン リストをバインドするときに、データベースのどのフィールドが値で、どのフィールドが表示されるテキストであるかを指定する必要があります。

ddlList.DataSource = sqlTa;
ddlList.DataValueField = "ValueFieldFromDatabaseResults";
ddlList.DataTextField = "ShownTextFieldFromDatabaseResults";
ddlList.DataBind();
于 2013-03-08T11:20:04.657 に答える
2

値とテキストとして使用するフィールドを指定する必要があります。

ddlList.DataSource = sqlTa;
ddlList.DataValueField = "ValueField";
ddlList.DataTextField = "TextField";
ddlList.DataBind();

そして、select ステートメントに " がありません。次のようにする必要があります。

"Select Item FROM Calendar Where UserD='Test'"

例は次のとおりです。

ライアンが指摘したように、1 つのフィールドを引き戻す場合は、次のようにします。

        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();
于 2013-03-08T11:20:19.717 に答える
1

この行を追加

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

次に、接続文字列がありません

SqlConnection myConn="must add your connection string code here "

接続文字列を開いていないので、

追加myconn.open()

為に

 SqlConnection myConn="must add your connection string code here "
`myconn.open()`
 SqlDataAdapter sqlDa = new SqlDataAdapter(strQuery,myConn)
于 2013-03-08T11:54:04.397 に答える
0

これを試して..

 ddlList.DataSource = sqlTa;                 
 ddlList.DataTextField = "class";
 ddlList.DataBind();

追加ddList.Value="somefield"はオプションです

于 2013-03-08T11:22:14.933 に答える