webForumDet fria alternativet

Hämta värden från en tabell

.NET

7 svar · 314 visningar · startad av Annelie_82

Medlem sedan okt. 200221 inlägg
Frågan#1

Jag vill hämta värden från en tabell och lägga dem i en dropdownlist. Jag lyckas att få en dropdownlist att funka (jag har fem stycken som ska hämtas från fem olika tabeller)

Min kod som funkar ser ut såhär...

private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
 {
   OleDbDataAdapter objAdapter = null;
   DataSet objDataSet = new DataSet();
				
    
String myConn  ="Provider=Microsoft.JET.OLEDB.4.0;Data Source=C:/Inetpub/wwwroot/sthlmskrogar1/sthlmkrog.mdb;";
OleDbConnection cn = new OleDbConnection(myConn);
cn.Open();

string SQL = "SELECT * FROM Genre";
objAdapter = new OleDbDataAdapter(SQL, cn);
objAdapter.Fill(objDataSet, "Genre");
GenreList.DataSource = objDataSet;
GenreList.DataTextField = "Genre";
GenreList.DataValueField = "GenreID";

GenreList.DataBind();

Men om jag sen lägger till en ny SQL - fråga som ska hämta till nästa dropdownlist så får jag fel...

 
SQL = "SELECT * FROM Atmosfär";
objAdapter = new OleDbDataAdapter(SQL, cn);
objAdapter.Fill(objDataSet, "Atmosfär");
AtmosfarList.DataSource = objDataSet;
AtmosfarList.DataTextField = "Atmosfär";
AtmosfarList.DataValueField = "AtmosfärID";

AtmosfarList.DataBind();

då får jag felet:
"System.Web.HttpException: DataBinder.Eval: System.Data.DataRowView innehåller inte någon egenskap med namnet Atmosfär."

Hur löser jag detta?

Medlem sedan dec. 20003 563 inlägg
#2

Nja testa att byta ut kolumnnamnet?

SQL = "SELECT [Atmosfär] as k1, [AtmosfärID] as k2 FROM [Atmosfär]";

AtmosfarList.DataTextField = "k1";
AtmosfarList.DataValueField = "k2";
Medlem sedan okt. 200221 inlägg
#3

Tyvärr, det funkade inte det heller.. :(

Medlem sedan sep. 20026 425 inlägg
#4

Du ändrade på kolumnnamnen i databasen då? Testa med detta i stället, om du körde cyprus kod direkt:

SQL = "SELECT [Atmosfar] as k1, [AtmosfarID] as k2 FROM [Atmosfar]";

AtmosfarList.DataTextField = "k1";
AtmosfarList.DataValueField = "k2";
Medlem sedan dec. 20003 887 inlägg
#5

Byt namnet Atmosfär till t.ex. Atmosphere. Av erfarenhet använder jag aldrig svenska i programmering/variabelhantering.

Sedan funderar jag på om du inte måste byta DataTable i ditt DataSet, men det kanske ska ske automatiskt. Jag vet inte eftersom jag inte har behövt jobba något ännu som kräver ett dataset. DataTable räcker utmärkt... än så länge ;)

Medlem sedan okt. 200221 inlägg
#6

Jag löste det på ett annat sätt, men tack alla ni som hjälpt mej!

Medlem sedan dec. 20003 563 inlägg
#7

Du får gärna berätta hur du gjorde för alla som kollar i denna tråd i framtiden. ;)

Medlem sedan okt. 200221 inlägg
#8

jag skrev såhär..

private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
OleDbDataAdapter objAdapter = null;
DataSet objDataSet = new DataSet();
String myConn  ="Provider=Microsoft.JET.OLEDB.4.0;Data Source=C:/Inetpub/wwwroot/sthlmskrogar1/sthlmkrog.mdb;";
OleDbConnection cn = new OleDbConnection(myConn);
cn.Open();

string SQL = "SELECT * FROM Genre";
objAdapter = new OleDbDataAdapter(SQL, cn);
objAdapter.Fill(objDataSet, "Genre");
GenreList.DataSource = objDataSet.Tables["Genre"];
GenreList.DataTextField = "Genre";
GenreList.DataValueField = "GenreID";

GenreList.DataBind();
GenreList.Items.Add("- Sök -");
GenreList.Items[ GenreList.Items.Count-1 ].Value = "¤";
GenreList.Items[ GenreList.Items.Count-1 ].Selected = true;
				

				
SQL = "SELECT * FROM Atmosfär";
OleDbCommand olecommand = new OleDbCommand(SQL,cn);
objAdapter.SelectCommand = olecommand;
objAdapter.Fill(objDataSet, "Atmosfär");
AtmosfarList.DataSource = objDataSet.Tables["Atmosfär"];
AtmosfarList.DataTextField = "Atmosfär";
AtmosfarList.DataValueField = "AtmosfärID";

AtmosfarList.DataBind();
AtmosfarList.Items.Add("- Sök -");
AtmosfarList.Items[ AtmosfarList.Items.Count -1 ].Value = "¤";
AtmosfarList.SelectedIndex = AtmosfarList.Items.Count -1;

objDataSet.Clear();
259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)