Avatar billede speedpete Nybegynder
07. marts 2004 - 11:34 Der er 2 kommentarer og
1 løsning

Har jeg glemt at lukke adgangen til databsen

Jeg har denne asp.net-side i c#. Den læser fra en database og putter det i en tabel. Simpelt nok.
Men jeg tror jeg mangler et "close" et eller andet sted, for hver gang jeg opdaterer poster i databasen (access) og uploader til min ISP, så kommer der application-error, og jeg kan kun få det til at virke ved at omdøbe databasen til et andet navn.

Koden:

<%@ Page Language="C#" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">

string connectionString;
OleDbConnection objConnection;
string commandString;
OleDbDataAdapter dataAdapter;
DataSet dataSet;
DataTable dataTable;
OleDbCommand objCmd;

private void Page_Load(object sender, System.EventArgs e)
{
connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("repertoiret.mdb");
objConnection = new OleDbConnection(connectionString);
commandString = "Select Kunstner, Sang from rep ORDER BY Kunstner";
dataAdapter = new OleDbDataAdapter (commandString, objConnection);
dataSet = new DataSet();
dataAdapter.Fill(dataSet,"Sange");
dataTable = dataSet.Tables[0];
lbRepertoire.DataSource = dataTable.DefaultView;
lbRepertoire.DataBind();
objCmd = new OleDbCommand(connectionString, objConnection);
}

void Button1_Click(Object sender, EventArgs e)
{
connectionString = "Select Kunstner, Sang from rep ORDER BY Kunstner";
objConnection.Open();
objCmd.CommandText = connectionString;
// objCmd = new OleDbCommand(connectionString, objConnection);
lbRepertoire.DataSource = objCmd.ExecuteReader(CommandBehavior.CloseConnection);
lbRepertoire.DataBind();
}

void Button2_Click(Object sender, EventArgs e) {
connectionString = "Select Kunstner, Sang from rep ORDER BY Sang";
objConnection.Open();
objCmd.CommandText = connectionString;
// objCmd = new OleDbCommand(connectionString, objConnection);
lbRepertoire.DataSource = objCmd.ExecuteReader(CommandBehavior.CloseConnection);
lbRepertoire.DataBind();
}

</script>
<html>
<head>
</head>
<body>
<form runat="server">
Sorter efter:
<asp:Button id="BtKunstner" onclick="Button1_Click" runat="server" Text="Kunstner"></asp:Button>
<asp:Button id="BtSang" onclick="Button2_Click" runat="server" Text="Sang"></asp:Button>
<asp:DataGrid id="lbRepertoire" runat="server" ForeColor="#dead63"></asp:DataGrid>
</form>
</body>
</html>
Avatar billede nielsbrinch Nybegynder
07. marts 2004 - 21:24 #1
Ja du åbner en forbindelse med objConnection.Open(); ved Button1_Click og Button2_Click. Du skal også objConnection.Close(); når du er færdig med forbindelsen.
Avatar billede speedpete Nybegynder
08. marts 2004 - 08:21 #2
Tak for det. Jeg ved ikke hvordan det virker med points, men du skulle jo så have nogen.
Avatar billede nielsbrinch Nybegynder
07. maj 2004 - 10:28 #3
hej
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester