17. december 2004 - 09:08Der er
9 kommentarer og 1 løsning
Hjælp til at få min database forbindelse lukket igen
Hej Jeg har et problem med noget kode, være gang jeg bruger den kode for en importeret dll fil i min code binden så vil den ikke lukke forbildelse til min database, hvis jeg bruger den importeret dll fil i et console program virker det fint med et få lukket, og jeg har checket at hjemmeside projket for den nye dll så det kan ikke være det... KODE: public ArrayList Hent_5_Nyeste_Hold() { ArrayList _hold_liste = new ArrayList(); try {
string _sql = "select top 5 * from hold as oste_mad order by HOLD_ID desc"; SqlDataReader _rs = _db.SqlDataReader(_sql); while(_rs.Read()) { Hold_ _hold = new Hold_(Convert.ToInt32(_rs["hold_id"]),_rs["Navn"].ToString(),_rs["Billede"].ToString(),Convert.ToDateTime(_rs["Oprettelses_Dato"]),_rs["Hjemmeside"].ToString(),_rs["Email"].ToString(),Convert.ToBoolean(_rs["Aktiveret"]),_rs["Kort_Navn"].ToString(),Convert.ToInt32(_rs["spil_id"])); _hold_liste.Add(_hold); _hold = null; } _rs.Close(); _rs = null; _db.Close(); _db = null; } catch(Exception _fejl) { throw _fejl; } return _hold_liste; }
_db kommer fra en anden dll: KODE: public class DB { /// <summary> /// Strengen som man bruger til at connect til database med /// </summary> private SqlConnection _connect;
/// <summary> /// Bruges til Stored Procs, den lukker selv forbindelsen /// </summary> /// <param name="strSQL">SQL strengen</param> public void SqlCommand(string strSQL) { SqlCommand _SqlCommand = new SqlCommand(strSQL, this._connect); _SqlCommand.Connection.Open(); _SqlCommand.ExecuteNonQuery(); this.Close(); }
/// <summary> /// Brugs til at hente data ud som skal bruges i en DataAdapter /// </summary> /// <param name="strSQL">SQL strengen</param> /// <returns>SqlDataAdapter</returns> public SqlDataAdapter SqlDataAdapter(string strSQL) { SqlDataAdapter _SqlDataAdapter = new SqlDataAdapter(strSQL, this._connect); _connect.Open(); return _SqlDataAdapter; }
/// <summary> /// Brugs til at hente data ud som skal bruges i en DataReader /// </summary> /// <param name="strSQL">SQL strengen</param> /// <returns>SqlDataReader</returns> public SqlDataReader SqlDataReader(string strSQL) { SqlDataReader _sqldatareader; SqlCommand _SqlCommand = new SqlCommand(strSQL, this._connect); _SqlCommand.Connection.Open(); _sqldatareader = _SqlCommand.ExecuteReader(); return _sqldatareader; }
/// <summary> /// Lukker forbindelsen til databasen /// </summary> public void Close() { this._connect.Close(); }
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Er det ikke fordi dit dll returnere en datareader som er knyttet til en connection. Den connection lukker ikke selv medmindre du fortæller din reader i konstruktoren at den skal lukke ved lukining af selve readeren. Dette kan du gøre på følgende måde.
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
Et andet godt råd er prøv at kigge på Microsofts Data Appalication Block den er virkelig god at arbejde med da har taget højde for en hel masse ting og da den er super nem at arbejde med. Alt du koder der og 100 gange mere har de kodet for dig.
hvad har du skrevet. Kan du ik paste koden. Det var bare de tre jeg brugte kunn eik huke hvor den kam fra. nu havde jeg noget odbc jeg brugte. Men paste lige koden ved jo ik præcis hvad du har gjort:D
SqlConnection con = new SqlConnection(connstr); SqlCommand cmd = new SqlCommand(sql, con); con.Open(); SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return _returnarr; } Og jeg kan så se at jeg har kaldt min store processer i min Sql server Enterprise Manager. Og selv om jeg lukker min hjemmeside ned blever den ståne der inde.
Hvorfor?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.