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();
string strQuery = "Select Item FROM Calendar Where UserD='Test'";
コードでは最初の文字列を終了しなかったため、文字列を一重引用符で囲む必要があることに注意してください。コードの残りの部分は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'"
例:
ライアンが指摘したように、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();
この行を追加する
_ddlList.DataSource = sqlTa;
ddlList.DataValueField = "ValueFieldFromDatabaseResults";
ddlList.DataTextField = "ShownTextFieldFromDatabaseResults";
ddlList.DataBind();
_
次に、接続文字列を見逃します
_SqlConnection myConn="must add your connection string code here "
_
接続文字列を開いていないので
myconn.open()
を追加します
for
_ SqlConnection myConn="must add your connection string code here "
`myconn.open()`
SqlDataAdapter sqlDa = new SqlDataAdapter(strQuery,myConn)
_
これを試して..
ddlList.DataSource = sqlTa;
ddlList.DataTextField = "class";
ddlList.DataBind();
ddList.Value="somefield"
の追加はオプションです