WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   MS Access-koppling från .aspx? (https://www.wn.se/forum/showthread.php?t=10719)

samuel99 2005-11-05 20:25

Hej!

Jag är ganska ny på .NET och C# då jag använt mig utav ASP3 och VBS innan. Håller på med ett litet privatprojekt och jag skulle behöva koppla mig mot en accessdatabas för att läsa information. Jag använder mig inte av VS.NET utan försöker skriva ihop det här m.h.a. Dreamweaver, dvs ingen code behind å sånnt att leka med.

Jag hade blivit JÄTTEGLAD om någon kunde skriva ihop ett litet exempel i C# som tex loopar all data från fldData ur tabell tblTable från databas "databas.mdb" på ett rekommenderat sätt, bör man tex använda sig av
Kod:

<asp:Repeater>
?

Jag har försökt å försökt med diverse exempel på nätet men fått allehanda lustiga fel; jag har iallafall kommit fram till att jag bör börja något sånnt här:

Kod:

<%
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=databas.mdb;User Id=admin;Password=;"
%>

Tack på förhand!

digiArt 2005-11-05 20:51

Skrivet ur huvudet med risk för lite fel:
Kod:

string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=databas.mdb;User Id=admin;Password=;"
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = commandText; // commandText är en textsträng innehållande din sql sats
OleDbConnection conn = new OleDbConnection(connStr);

try
{
        conn.Open();        // Öppna mot databasen
        cmd.Connection = conn;
        dataGrid.DataSource = cmd.ExecuteReader(CommandBehavior.CloseConnection)
        dataGrid.DataBind();
}
catch(Exception ex)
{
        // fånga eventuella fel
}

Som sagt, knåpat från huvudet, men bör ge dig en vink om hur det funkar. Kolla också in http://www.asp.net/Tutorials/quickstart.aspx

samuel99 2005-11-05 21:05

Ah, underbart med snabba svar. Min kod ser nu ut som följer:

Kod:

<%@ Import Namespace="System.Data.OleDb" %>
<%
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb;User Id=admin;Password=;";
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select * from tblEvent";
OleDbConnection conn = new OleDbConnection(connStr);

try
{
        conn.Open();  // Öppna mot databasen
        cmd.Connection = conn;
        dataGrid.DataSource = cmd.ExecuteReader(CommandBehavior.CloseConnection);
        dataGrid.DataBind();
}
catch(Exception ex)
{

}%>

Jag får då felet
Kod:

Compiler Error Message: CS0246: The type or namespace name 'CommandType' could not be found (are you missing a using directive or an assembly reference?)
Har jag missat att inkludera någon referens?

digiArt 2005-11-05 21:18

Du måste importera System.Data också

digiArt 2005-11-05 21:20

Glöm förresten inte
Kod:

finally
{
conn.Close();
}


samuel99 2005-11-05 21:40

Vad måste man importera för att använda DataGrid?

Jag får nämligen:

Kod:

The type or namespace name 'dataGrid' could not be found (are you missing a using directive or an assembly reference?)

samuel99 2005-11-05 21:53

Såg att det var litet "d" där, men nu får jag istället:

An object reference is required for the nonstatic field, method, or property 'System.Web.UI.WebControls.BaseDataList.DataSource '

Jag är inte så bra på det här med .NET :)

digiArt 2005-11-06 10:17

dataGrid syftar till ett namn på en DataGrid som du har på din aspx-sida. Den kunde lika gärna hetat banan eller ananas. Mao, du måste lägga till en DataGrid till din sida och sedan ge den ett namn, det namnet är där dataGrid i mitt exempel ska hamna.

Jag rekommenderar dig VERKLIGEN att läsa igenom tutorials på asp.net. Kolla även in www.4guysfromrolla.com. Sen har du spaltkilometer med information på msdn.microsoft.com.

eg0master 2005-11-06 10:40

Du kan även göra ditt liv enkelt genom att använda MS application block för dataaccess:
http://msdn.microsoft.com/practices/guidet...2/html/daab.asp
Skriven för SQL server, men kan enkelt hackas om för att köra odbc.

samuel99 2005-11-06 11:18

Hallå hallå och god morgon. Jag jobbar enbart med design av hemsidor på arbetstid så jag har inga ambitioner om att bli överstabil på .NET, det får andra bli.

Det här är ett litet privat sidoprojekt där jag bara behöver läsa data från en tabell så att läsa spaltkilometer med info känns lite overkill. Vad som slår mig när jag försöker hitta info på nätet är att alla använder codebehind som de binder till data kontroller osv. Säkert så man ska göra iofs men jag har inte VS och tänker inte skaffa mig heller :)

Ingen som vill utveckla digiArts fina exempel till något som bara fungerar rakt av?


Alla tider är GMT +2. Klockan är nu 23:26.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson