Quand j'essaie de dater dropdownlist
, j'ai ceci: system.data.datarowview
qu'est-ce que je me trompe?
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'";
Notez que vous devez utiliser des guillemets simples autour de la chaîne, car dans votre code, vous n'avez jamais terminé la chaîne initiale. Le reste du code est donc devenu une partie intégrante de strQuery.
En outre si vous ramenez plus d'un champ à l'avenir , lorsque vous liez une liste déroulante, vous devez spécifier quel champ de la base de données correspond à la valeur et quel est le texte affiché.
ddlList.DataSource = sqlTa;
ddlList.DataValueField = "ValueFieldFromDatabaseResults";
ddlList.DataTextField = "ShownTextFieldFromDatabaseResults";
ddlList.DataBind();
Vous devez lui indiquer quels champs utiliser comme valeur et texte.
ddlList.DataSource = sqlTa;
ddlList.DataValueField = "ValueField";
ddlList.DataTextField = "TextField";
ddlList.DataBind();
Et votre déclaration sélectionnée manque un ". Il devrait être:
"Select Item FROM Calendar Where UserD='Test'"
Un exemple étant:
Comme Ryan l'a souligné, si vous retirez un champ, vous pouvez simplement faire:
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();
Mais si vous avez plus d'un champ, vous pouvez le faire:
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();
ajoute cette ligne
ddlList.DataSource = sqlTa;
ddlList.DataValueField = "ValueFieldFromDatabaseResults";
ddlList.DataTextField = "ShownTextFieldFromDatabaseResults";
ddlList.DataBind();
alors vous manquez la chaîne de connexion pour
SqlConnection myConn="must add your connection string code here "
Vous n'avez pas de chaîne de connexion ouverte, donc
ajouter myconn.open()
for
SqlConnection myConn="must add your connection string code here "
`myconn.open()`
SqlDataAdapter sqlDa = new SqlDataAdapter(strQuery,myConn)
Essaye ça..
ddlList.DataSource = sqlTa;
ddlList.DataTextField = "class";
ddlList.DataBind();
l'ajout de ddList.Value="somefield"
est facultatif