Permalänk
Medlem

SqlConnection Open

Försöker lära mig att använda C# och SQL efter att tidgare använt ASP Classic och lyckas inte riktigt med OPEN i SqlConnection.

I gamla ASP Classic använde jag mig ofta av

<code>
FUNCTION DVM4_GetVecKm(VecID)

SET SQL = Connect.Execute("SELECT * FROM DVM4_Index WHERE ID = '"&VecID&"'")

IF NOT SQL.EOF THEN DVM4_GetRegNr = (sql("KM")) END IF

END FUNCTION
</code>

När jag vill göra något liknande i .NET C# så tar det väldigt långtid för SqlConnection.Open att öppna databasen.

<code>

public string VecObj(int id)
{
//STARTA ANSLUTNING FÖR ATT HÄMTA DATA FRÅN SQL
string connStr = strConnToDCS;
SqlConnection conn = new SqlConnection(connStr);
conn.Open();
SqlCommand cmd = new SqlCommand("select * from vecdata_index WHERE ID = '" + id + "'", conn);
SqlDataReader rdr = cmd.ExecuteReader();
rdr.Read();

//Lämna värdet
return (rdr["Veckm"].ToString();
}

</code>

Gör jag helt fel? Målet är att objektet skall lämna data till en datagridview och det kommer då även att ske viss behandling i objektet. Innan när jag programmerat i ASP Classic har jag först skapat ett RecordSet och när jag skriver detta till sidan så hämtar jag samtidigt in objekt från andra tabeller som måste behandlas på något vis.

Jag försöker att skapa en DataGridView med olika fordon och vill t.ex hämta aktuella mätarställningar osv. från andra tabeller med olika objekt.

Permalänk
Medlem

Borde funka, men använd parametrar i commandobjektet och stäng din sqlconnection när du är klar.

string x = rdr["Veckm"].ToString();
conn.Close()

return x;

eller

cmd.Connection = conn;
SqlDataReader rdr = cmd.Executereader(CommandBehavior.CloseConnection);

return rdr;

sen stänger du readern i anropande funktion när den läst klart

rdr.Close();

Permalänk

Eller så använder man ett using-statement, då behöver man inte ens bry sig om att "manuellt" stänga anslutningen.

http://msdn.microsoft.com/en-us/library/system.data.sqlclient...

Visa signatur

www.uu.se - some kind of university | www.hirr.org.uk - ain't no mountain high enough | www.bajenfans.se

Permalänk

Reagerade lite på hur du döpte dina variabler. De stämmer bra för de äldre versionerna men kan finnas en mening i att följa guidelines för c#:
http://msdn.microsoft.com/en-us/library/xzf533w0(VS.71).aspx

Ledsen för att dra upp gammal tråd men det kanske fortfarande var av intresse

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av KurreKula
Reagerade lite på hur du döpte dina variabler. De stämmer bra för de äldre versionerna men kan finnas en mening i att följa guidelines för c#:
http://msdn.microsoft.com/en-us/library/xzf533w0(VS.71).aspx

Ledsen för att dra upp gammal tråd men det kanske fortfarande var av intresse

Jag är lite slarvig jag vet Jag skall försöka uppdatera mig!

Permalänk
Citat:

Ursprungligen inskrivet av sammyj
Jag är lite slarvig jag vet Jag skall försöka uppdatera mig!

Testa att ladda hem team edition trialen och kör code analysis så kommer den att leta upp alla ställen som du har skrivit saker som inte stämmer överrens med guidelines och säga vad du bör skriva istället! Otroligt smidigt

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase