webForumDet fria alternativet

hämta data från sql databas

1 svar · 459 visningar · startad av Nevvy

NevvyMedlem sedan sep. 200610 inlägg
#1

Hej,
Jag är nybörjare på ASP.NET och håller på att koppla en databas till en webbsida(puh)

Jag ar skapt en singleton klass som öppnar en db-koppling och skickar över en förfrågan till databasen, som är en SQL-databas.

Jag har en sida car.aspx som skall visa en lista med bilar i en repeater

Jag har en car.aspx.cs som skall hämta bilobjekt
=====================================
private void LoadCars()
{
//TODO: hämta från db
rptCars.DataSource = Car.GetCars();
rptCars.DataBind();

}

protected void rptCars_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Car car = e.Item.DataItem as Car;
(e.Item.FindControl("ImgBtn_car") as ImageButton).ImageUrl = "images/"+ car.CarImage_th;
}
}
====================================

Jag har Car.cs som skall hämta bilarna

public Car GetCars()
{
DBcommunication dbComm = DBcommunication.GetInstance();
dbComm.dbRead("SELECT CarImage_th, CarId FROM Car");
return this;
}
==============================
Jag har

public DataSet dbRead(string sqlString)
{
SqlConnection dbConnection = CreateConnection();
SqlCommand read = new SqlCommand(sqlString, dbConnection);
dataAdapter.SelectCommand = read;
dataAdapter.Fill(dataSet);
dbConnection.Close();
return dataSet;
}

private SqlConnection CreateConnection()
{

        //skapa koppling
        string dbConnectionString = "server='(local)'; trusted_connection=true; Database='Databasen";
        SqlConnection dbConnection = new SqlConnection(dbConnectionString);
        dbConnection.Open();
        return dbConnection;
      
    }

=========================
Jag får felmeddelande vid kompilering:
A using namespace directive can only be applied to namespaces; 'Car' is a type not a namespace

=================

Jag är tacksam om någon kan hjälpa mig, det är svårt att förstå detta, men med en puff rätt riktning, så kanske jag kan lösa detta.

emissionMedlem sedan dec. 19996 721 inlägg
#2

Nästan rätt, men ändå inte...

1. GetCars ska väl returnera mer än en bil? I så fall ska ju inte returtypen vara Car, utan något som ger en mängd av bilar. Car[], List<Car> eller något liknande.

2. Jag antar att koden vi ser inryms i en klass som heter Car. I så fall så misslyckas anropet till Car.GetCars, eftersom metoden inte är markerad som static, dvs. "public static Cars[] GetCars()"

3. Du anropar dbRead, som returnerar ett dataset. Men du tar inte emot det och gör någonting med det. "return this" betyder att du returnerar själva klassinstansen som som "står i", vilket knappast är särskilt intressant.

4. Nu såg jag att dbRead verkar ligga i klassen dbComm. Hur är det egentligen?

5. I dbRead måste du deklarera och instantiera det dataset (dataSet) som du skickar in i Fill.

6. Om du ska kunna skapa typade Car-objekt av raderna i Datasetet så måste även detta göras någonstans.

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)