Avatar billede maxmuldjord Nybegynder
23. september 2004 - 21:53 Der er 48 kommentarer og
2 løsninger

Forbindelse / opdatering af database

Nu er jeg ved at rode mig rigtigt langt ud, jeg har været ved at klippe/klistre i noget kode fra en bog og det går naturligvis galt. Se jeg kunne også tænke mig at vide om der ikke er en nem metode til at forbinde f.eks en knap med en database i VS.NET? I stedet for at håndkode det? Jeg får her den ene fejl efter den anden, lige nu brokker den sig over linie 69 som er meget simpel : dbConnection.Open();
Nu skal jeg jo nok ændre værdien på min cookie men hvad bør den være? Hele smøren kommer her:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace empty
{
    /// <summary>
    /// Summary description for WebForm1.
    /// </summary>
    public class WebForm1 : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.Label lblRegister;
        protected System.Web.UI.WebControls.TextBox txtEmailAddress;
        protected System.Web.UI.WebControls.Button btnRegister;
        protected System.Web.UI.WebControls.RegularExpressionValidator RegularExpressionValidator1;
   
        private void Page_Load(object sender, System.EventArgs e)
        {
            // Put user code to initialize the page here
        }

        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            //
            InitializeComponent();
            base.OnInit(e);
        }
       
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {   
            this.btnRegister.Click += new System.EventHandler(this.btnRegister_Click);
            this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion
        bool CheckFanEmailAddresses(string fanEmail)
        {
            string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; "+
                "Data Source:D\\Bases\\Database\\WroxUnited.mdb";
            System.Data.IDbConnection dbConnection=
                new System.Data.OleDb.OleDbConnection();

            string queryString = "SELECT COUNT([Fans].[FanEmail]) FROM [Fans] WHERE ([Fans].[FanEmail] = @FanEmail)";
            System.Data.IDbCommand dbCommand = new System.Data.OleDb.OleDbCommand();
            dbCommand.CommandText = queryString;
            dbCommand.Connection = dbConnection;

            System.Data.IDataParameter dbParam_fanEmail = new System.Data.OleDb.OleDbParameter();
            dbParam_fanEmail.ParameterName = "@FanEmail";
            dbParam_fanEmail.Value = fanEmail;
            dbParam_fanEmail.DbType = System.Data.DbType.String;
            dbCommand.Parameters.Add(dbParam_fanEmail);

            int result = 0;
            dbConnection.Open();
            try
            {
                result = (int)dbCommand.ExecuteScalar();
            }
            finally
            {
                dbConnection.Close();
            }

            if (result > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }


        private void btnRegister_Click(object sender, System.EventArgs e)
        {
            string FanEmail = txtEmailAddress.Text;

            //Check whether the email address is already registered
            //If not, we need to register it by calling the AddNewFanEmail() method
            if (!CheckFanEmailAddresses(FanEmail))
            {
                AddNewFanEmail(FanEmail);
            }

            // Email has been registered, so update the display and attempt write to a cookie
            txtEmailAddress.Visible = false;
            lblRegister.Text = "You have successfully registered for email updates";
            btnRegister.Visible = false;

            HttpCookie EmailRegisterCookie = new HttpCookie("EmailRegister");
            EmailRegisterCookie.Value = FanEmail;
            EmailRegisterCookie.Expires = DateTime.Now.AddSeconds(20);
            Response.Cookies.Add(EmailRegisterCookie);

        }

        int AddNewFanEmail(string fanEmail)
        {
            string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; "+
                "Data Source:D\\Bases\\Database\\WroxUnited.mdb";
            System.Data.IDbConnection dbConnection=
                new System.Data.OleDb.OleDbConnection();

            string queryString = "INSERT INTO [Fans] ([FanEmail]) VALUES (@FanEmail)";
            System.Data.IDbCommand dbCommand = new System.Data.OleDb.OleDbCommand();
            dbCommand.CommandText = queryString;
            dbCommand.Connection = dbConnection;

            System.Data.IDataParameter dbParam_fanEmail = new System.Data.OleDb.OleDbParameter();
            dbParam_fanEmail.ParameterName = "@FanEmail";
            dbParam_fanEmail.Value = fanEmail;
            dbParam_fanEmail.DbType = System.Data.DbType.String;
            dbCommand.Parameters.Add(dbParam_fanEmail);

            int rowsAffected = 0;
            dbConnection.Open();
            try
            {
                rowsAffected = dbCommand.ExecuteNonQuery();
            }
            finally
            {
                dbConnection.Close();
            }
            return rowsAffected;
        }

       
    }
}
Avatar billede snepnet Nybegynder
23. september 2004 - 21:55 #1
denne her ser ikke god ud :
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; "+
                "Data Source:D\\Bases\\Database\\WroxUnited.mdb";
Avatar billede snepnet Nybegynder
23. september 2004 - 21:56 #2
Data Source = ovs...
du kan se connectionstrings her :
http://www.connectionstrings.com
Avatar billede arne_v Ekspert
23. september 2004 - 21:56 #3
Og når connection string er rettet så skal dennok angives som argument til connection
constructor !
Avatar billede snepnet Nybegynder
23. september 2004 - 21:56 #4
string connectionString =
"Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4;Data Source=D\\Bases\\Database\\WroxUnited.mdb";
Avatar billede arne_v Ekspert
23. september 2004 - 21:57 #5
Mangler der ikke et kolon efter D ?
Avatar billede snepnet Nybegynder
23. september 2004 - 22:02 #6
det må siges at være et retorisk spørgsmål :oD
Avatar billede maxmuldjord Nybegynder
23. september 2004 - 22:12 #7
snepnet - - -> jeg har indsat din kode (med kolon 8>)) men den brokker sig stadig over linie 69? Nu kn det godt være at jeg har rodet for meget med det i dag 8( men hvad mener du med "Og når connection string er rettet så skal den nok angives som argument til connection
constructor !" kan du pinde den ud så et gammelt fjols kan fatte det? (ja mig altså)
Avatar billede snepnet Nybegynder
23. september 2004 - 22:14 #8
det var det her arne mente :
System.Data.IDbConnection dbConnection=new System.Data.OleDb.OleDbConnection(sonnectionString);
Avatar billede jakobandersen Nybegynder
23. september 2004 - 22:14 #9
System.Data.IDbConnection dbConnection = new System.Data.OleDb.OleDbConnection(connectionString);
Avatar billede arne_v Ekspert
23. september 2004 - 22:14 #10
Det var mig (og jeg er nok dne ældste).

            System.Data.IDbConnection dbConnection=
                new System.Data.OleDb.OleDbConnection();

skal vel være:


            System.Data.IDbConnection dbConnection=
                new System.Data.OleDb.OleDbConnection(connectionString);
Avatar billede snepnet Nybegynder
23. september 2004 - 22:17 #11
Og det med constructore :

new SomeClass() medfører et kald til "den tomme" constructer i SomeClass(), og der kan være så mange constructore man skulle have lyst til at lave :

public SomeClass
{
  // tom constructor
  public SomeClass()
  {
  }

  // constructor der tager en parameter
  public SomeClass(string someString)
  {
      // gør noget med someString
  }
}

du vil så kunne instantiere et objekt baseret på SomeClass med enten
SomeClass sc = new SomeClass();
eller
SomeClass sc = new SomeClass("hej");
Avatar billede maxmuldjord Nybegynder
24. september 2004 - 17:18 #12
Det virker 8>) i alt fald her lokalt, jeg vil lige smide det op på nettet bare for sjov. Men hvordan burde jeg have grebet det an hvis jeg var startet fra bunden i VS og skulle oprette forbindelse til min database? jeg kan se at der er forskellige kommandoer man kan bruge i toolboxen. Det er bare lidt svært at overskue hvordan det virker, jeg anvender access databaser som det er lige nu.

og svar så venligst D'herrer
Avatar billede maxmuldjord Nybegynder
24. september 2004 - 17:32 #13
ok nu driller det lidt, når jeg har den online kommer der en fejl, jeg har i min Default.aspx.cs denne sti: "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4;Data Source=D:\\www\\Bases\\Database\\WroxUnited.mdb";

Men som det kan ses er det som om at ændringen ikke er registreret på serveren, jeg har uploadet den nye fil, hvad kan evt. drille her?            


[OleDbException (0x80004005): 'D:\Bases\Database\WroxUnited.mdb' is not a valid path.  Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.]
  System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr) +20
  System.Data.OleDb.OleDbConnection.InitializeProvider() +57
  System.Data.OleDb.OleDbConnection.Open() +203
  empty.WebForm1.CheckFanEmailAddresses(String fanEmail) in d:\webdesign\experiments folder\experiments\default.aspx.cs:69
  empty.WebForm1.btnRegister_Click(Object sender, EventArgs e) in d:\webdesign\experiments folder\experiments\default.aspx.cs:96
  System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
  System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
  System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
  System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
  System.Web.UI.Page.ProcessRequestMain() +1277
Avatar billede arne_v Ekspert
24. september 2004 - 17:56 #14
Har du uploadet den compilede dll til bin directory ?
Avatar billede arne_v Ekspert
24. september 2004 - 17:56 #15
og et svar
Avatar billede snepnet Nybegynder
24. september 2004 - 18:10 #16
er det sådan et helt almindeligt public site du har... der er nogle gange nogle der forbereder specifikke kataloger at lægge sine db-filer ol. i.
er du sikker på at D:\bases\... er gangbar, og at der er adgang til at du kan læse i den ?

mvh
Avatar billede maxmuldjord Nybegynder
24. september 2004 - 18:32 #17
hmmmmmm... problemet er at den ikke vil compilere når jeg har www i min sti, når jeg oploader min bin nu kommer den og brokker sig over at den ikke kan loade WebForm1

Line 1:  <%@ Page language="c#" Codebehind="Default.aspx.cs" AutoEventWireup="false" Inherits="empty.WebForm1" %>
Line 2:  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
Line 3:  <HTML>
Avatar billede snepnet Nybegynder
24. september 2004 - 18:40 #18
det ser ud til, at du har en side der hedder Default.aspx, som forsøger at bruge en klasse der hedder webform1...
har du omdøbt lidt rundt omkring ?
Avatar billede snepnet Nybegynder
24. september 2004 - 18:40 #19
du kan evt. sende mig din code-behind som den ser ud nu.... så skal jeg nok rette dit pagedirective til.
(altså den her : <%@ Page language="c#" Codebehind="Default.aspx.cs" AutoEventWireup="false" Inherits="empty.WebForm1" %>)
Avatar billede maxmuldjord Nybegynder
24. september 2004 - 18:48 #20
nææ jeg har intet omdøbt, jeg har kun ændret min sti, nu har jeg forsøgt at ændre den tilbage for at få skidtet til at compilere men nu brokker den sig over at :
D:\WebDesign\Experiments folder\Experiments\Default.aspx.cs(118): Cannot implicitly convert type 'System.Data.OleDb.OleDbConnection' to 'string'


og: D:\WebDesign\Experiments folder\Experiments\Default.aspx.cs(132): The type or namespace name 'dbConnection' could not be found (are you missing a using directive or an assembly reference?)
Hele min code behind er her, det er mægtigt pænt af dig snepnet og jeg vil være glad for om du kan fortælle mig hvad jeg gør galt, det lader til at jeg kan lære mere her end i skolen 8(


using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace empty
{
    /// <summary>
    /// Summary description for WebForm1.
    /// </summary>
    public class WebForm1 : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.Label lblRegister;
        protected System.Web.UI.WebControls.TextBox txtEmailAddress;
        protected System.Web.UI.WebControls.Button btnRegister;
        protected System.Web.UI.WebControls.RegularExpressionValidator RegularExpressionValidator1;
   
        private void Page_Load(object sender, System.EventArgs e)
        {
            // Put user code to initialize the page here
        }

        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            //
            InitializeComponent();
            base.OnInit(e);
        }
       
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {   
            this.btnRegister.Click += new System.EventHandler(this.btnRegister_Click);
            this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion
        bool CheckFanEmailAddresses(string fanEmail)
        {
            string connectionString =
                "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4;Data Source=D:\\Bases\\Database\\WroxUnited.mdb";
            System.Data.IDbConnection dbConnection=
                new System.Data.OleDb.OleDbConnection(connectionString);

            string queryString = "SELECT COUNT([Fans].[FanEmail]) FROM [Fans] WHERE ([Fans].[FanEmail] = @FanEmail)";
            System.Data.IDbCommand dbCommand = new System.Data.OleDb.OleDbCommand();
            dbCommand.CommandText = queryString;
            dbCommand.Connection = dbConnection;

            System.Data.IDataParameter dbParam_fanEmail = new System.Data.OleDb.OleDbParameter();
            dbParam_fanEmail.ParameterName = "@FanEmail";
            dbParam_fanEmail.Value = fanEmail;
            dbParam_fanEmail.DbType = System.Data.DbType.String;
            dbCommand.Parameters.Add(dbParam_fanEmail);

            int result = 0;
            dbConnection.Open();
            try
            {
                result = (int)dbCommand.ExecuteScalar();
            }
            finally
            {
                dbConnection.Close();
            }

            if (result > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }


        private void btnRegister_Click(object sender, System.EventArgs e)
        {
            string FanEmail = txtEmailAddress.Text;

            //Check whether the email address is already registered
            //If not, we need to register it by calling the AddNewFanEmail() method
            if (!CheckFanEmailAddresses(FanEmail))
            {
                AddNewFanEmail(FanEmail);
            }

            // Email has been registered, so update the display and attempt write to a cookie
            txtEmailAddress.Visible = false;
            lblRegister.Text = "You have successfully registered for email updates";
            btnRegister.Visible = false;

            HttpCookie EmailRegisterCookie = new HttpCookie("EmailRegister");
            EmailRegisterCookie.Value = FanEmail;
            EmailRegisterCookie.Expires = DateTime.Now.AddSeconds(20);
            Response.Cookies.Add(EmailRegisterCookie);

        }

        int AddNewFanEmail(string fanEmail)
        {
            string connectionString =
               

                new System.Data.OleDb.OleDbConnection(connectionString);

            string queryString = "INSERT INTO [Fans] ([FanEmail]) VALUES (@FanEmail)";
            System.Data.IDbCommand dbCommand = new System.Data.OleDb.OleDbCommand();
            dbCommand.CommandText = queryString;
            dbCommand.Connection = dbConnection;

            System.Data.IDataParameter dbParam_fanEmail = new System.Data.OleDb.OleDbParameter();
            dbParam_fanEmail.ParameterName = "@FanEmail";
            dbParam_fanEmail.Value = fanEmail;
            dbParam_fanEmail.DbType = System.Data.DbType.String;
            dbCommand.Parameters.Add(dbParam_fanEmail);

            int rowsAffected = 0;
            dbConnection.Open();
            try
            {
                rowsAffected = dbCommand.ExecuteNonQuery();
            }
            finally
            {
                dbConnection.Close();
            }
            return rowsAffected;
        }

       
    }
}
Avatar billede maxmuldjord Nybegynder
24. september 2004 - 18:50 #21
Jeg kan bare ikke forstå at det virkede en gang?
Avatar billede arne_v Ekspert
24. september 2004 - 18:53 #22
Der er da faldet noget ud her:

          string connectionString =
             

                new System.Data.OleDb.OleDbConnection(connectionString);
Avatar billede arne_v Ekspert
24. september 2004 - 18:55 #23
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4;Data Source=D:\\WWW\\Bases\\Database\\WroxUnited.mdb";
System.Data.IDbConnection dbConnection = new System.Data.OleDb.OleDbConnection(connectionString);

eller noget lignende
Avatar billede maxmuldjord Nybegynder
24. september 2004 - 19:03 #24
Det har du da ret i Arne, hvordan dælen kan det bare forsvinde? nu compiler den!
Avatar billede maxmuldjord Nybegynder
24. september 2004 - 19:05 #25
Jeg formoder at jeg skal have mit domæne med i stien? det har jeg nu men får følgende :

[OleDbException (0x80004005): Operation must use an updateable query.]
  System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) +41
  System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +174
  System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +92
  System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +65
  System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +112
  System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +66
  empty.WebForm1.AddNewFanEmail(String fanEmail) in d:\webdesign\experiments folder\experiments\default.aspx.cs:136
  empty.WebForm1.btnRegister_Click(Object sender, EventArgs e) in d:\webdesign\experiments folder\experiments\default.aspx.cs:98
  System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
  System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
  System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
  System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
  System.Web.UI.Page.ProcessRequestMain() +1277
Avatar billede arne_v Ekspert
24. september 2004 - 19:10 #26
Nej du skal bare angive den lokale sti på serveren.
Avatar billede maxmuldjord Nybegynder
24. september 2004 - 19:31 #27
når jeg fjerner domænet fra min sti får jeg følgende

[OleDbException (0x80004005): 'D:\www\Bases\Database\WroxUnited.mdb' is not a valid path.  Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.]
  System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr) +20
  System.Data.OleDb.OleDbConnection.InitializeProvider() +57
  System.Data.OleDb.OleDbConnection.Open() +203
  empty.WebForm1.CheckFanEmailAddresses(String fanEmail) in d:\webdesign\experiments folder\experiments\default.aspx.cs:69
  empty.WebForm1.btnRegister_Click(Object sender, EventArgs e) in d:\webdesign\experiments folder\experiments\default.aspx.cs:96
  System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
  System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
  System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
  System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
  System.Web.UI.Page.ProcessRequestMain() +1277
Avatar billede maxmuldjord Nybegynder
24. september 2004 - 19:31 #28
der brokker den sig over stien
Avatar billede arne_v Ekspert
24. september 2004 - 19:32 #29
Den er vel så ikke korrekt ...
Avatar billede snepnet Nybegynder
24. september 2004 - 19:36 #30
når du uploader løsningen... hvor lægger du så databasen ?
Avatar billede maxmuldjord Nybegynder
24. september 2004 - 19:39 #31
det jeg mener er at med domæne kommer fejl som i 19:05:07 uden domæne siger den st stien ikke er korrekt
Avatar billede maxmuldjord Nybegynder
24. september 2004 - 19:43 #32
fejlen er tilsyneladende:  System.Data.OleDb.OleDbException: Operation must use an updateable query.

Min database ligger i www\Bases\Database
Avatar billede snepnet Nybegynder
24. september 2004 - 19:43 #33
og du er sikker på at det er på D-Drevet ?
Avatar billede snepnet Nybegynder
24. september 2004 - 19:44 #34
og at det ikke hedder noget med inetpub/wwwroot/ eller lignende ?
Avatar billede maxmuldjord Nybegynder
24. september 2004 - 19:50 #35
ja, den ligger på D og det er på mit domæne empty-site.org. jeg har nogle gamle sider i ASP 3 og de virker med stien som vi har her. Når jeg fjerner domænet fra stien så kommer denne fejl [OleDbException (0x80004005): 'D:\www\Bases\Database\WroxUnited.mdb' is not a valid path.
Avatar billede snepnet Nybegynder
24. september 2004 - 19:59 #36
Jeg smutter lige den næste halve time... men jeg vil foreslå dig at smide din access-fil ind i projektet, og tage fat i den med Server.MapPath(...)
Avatar billede maxmuldjord Nybegynder
24. september 2004 - 19:59 #37
Jeg kan ikke forstå at i fejlmeddelsen fra min host at der referes til de filer jeg har her lokalt, f.eks

System.Data.OleDb.OleDbConnection.Open() +203
  empty.WebForm1.CheckFanEmailAddresses(String fanEmail) in d:\webdesign\experiments folder\experiments\default.aspx.cs:69
  empty.WebForm1.btnRegister_Click(Object sender, EventArgs e) in d:\webdesign\experiments folder\experiments\default.aspx.cs:96
Avatar billede arne_v Ekspert
24. september 2004 - 20:08 #38
Det er vel bare filnavne gemt ved kompilering ...
Avatar billede maxmuldjord Nybegynder
24. september 2004 - 20:10 #39
Jeg har lige testet igen, det virker lokalt
Avatar billede maxmuldjord Nybegynder
25. september 2004 - 07:29 #40
Jeg har haft fat i min ISP og stien skulle være rigtig, jeg har set efter om noget skulle være skrivebeskyttet men det er ikke tilfældet, jeg prøver at flytte databasen ud af mapperne for at se om det hjælper.

snepnet - - - > Jeg er helt grøn med VS, var det muligt, hvis jeg lover på mine grædende knæ (hvordan det nu ser ud) ikke at misbruge det at lave en session via messsenger? Jeg er ikke helt med på hvordan jeg "smide din access-fil ind i projektet, og tage fat i den med Server.MapPath(...)"
Jeg er her nok først eftermiddag eller aften, skal mure lidt i dag 8(
Avatar billede snepnet Nybegynder
25. september 2004 - 11:01 #41
tjoh - det kan vi da godt sige. hvis du smider dit nummer herud, skal jeg nok "ringe" :o)

men... indtil videre kan du se denne kode.
den fungerer under forudsætning af at databasen ligger i folderen data under webbet (det har ikke noget betydning for koden hvorvidt databasen er en del af din solution eller ej, men det kan være meget praktisk).

nå - men here it goes :

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace AccessProject
{
    public class _Default : System.Web.UI.Page
    {
        // connectionstring for formattering
        private string connectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};User Id=admin;Password=;";
               
        // serverformen på siden
        protected HtmlForm Form1;

        // datagrid for fremvisning
        protected DataGrid someGrid;
       
        private void Page_Load(object sender, System.EventArgs e)
        {
            // forbindelsen oprettes (stien sættes vha MapPath(...))
            OleDbConnection connection = new OleDbConnection(String.Format(connectString, Server.MapPath("Data/TestDB.mdb")));
           
            // kommandoobjekt
            OleDbCommand command = new OleDbCommand("SELECT * FROM TblSomething", connection);
           
            // og en adapter
            OleDbDataAdapter adapter = new OleDbDataAdapter(command);
           
            try
            {
                // hent data til dataset
                DataSet ds = new DataSet("SomeDataSet");               
                adapter.Fill(ds);
               
                // lille opdatering - bare for sjov
                ds.Tables[0].Rows[0]["SomeString"] = "En ny tekst";
                OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(adapter);
                adapter.Update(ds);

                // og lidt til fremvisning her
                someGrid = new DataGrid();
                someGrid.DataSource = ds;                   
                someGrid.DataBind();                                           
                Form1.Controls.Add(someGrid);
            }

            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
        }

        override protected void OnInit(EventArgs e)
        {
            InitializeComponent();
            base.OnInit(e);
        }
       
        private void InitializeComponent()
        {   
            this.Load += new System.EventHandler(this.Page_Load);
        }
    }
}

Databasen hedder TestDB.mdb, og den indeholder én tabel (TblSomething) med 4 kolonner :

Id (autonumber)
SomeString (text)
SomeInteger (number)
SomeDate (DateTime)

men smid bare dit messangernummer her, så skal jeg nok få fat i dig.

mvh
Avatar billede maxmuldjord Nybegynder
25. september 2004 - 14:04 #42
Tak skal du have, jeg kikker på din løsning jeg har MSN tommy ( at ) empty-site.org
Avatar billede maxmuldjord Nybegynder
26. september 2004 - 19:18 #43
arne og snepnet , lad os nu se nogle svar så jeg ikke glemmer at lukke denne, jeg fik det til at virke med samme kode men ved at lave en mappe i roden og så lægge databasen her. Men tusind tak for som altid venlig og kvalificeret hjælp.
Håber i har haft en god søndag!
Avatar billede arne_v Ekspert
26. september 2004 - 19:46 #44
Vi svarede og du accepterede for 2 dage side ...
Avatar billede maxmuldjord Nybegynder
26. september 2004 - 19:49 #45
hehe .. ja der kan man se Arne, det må være (min) alderen der trykker !
Avatar billede arne_v Ekspert
26. september 2004 - 19:52 #46
Jeg tror stadig at jeg er ældst her ...
Avatar billede maxmuldjord Nybegynder
26. september 2004 - 20:00 #47
det er da muligt Arne, jeg er 46 og det er ikke nemt at begynde på programmering i den alder, ikke for mig i alt fald men spændende det er det. Mulighederne syntes ubegrænsede. Problemerne ligeså, hvergang jeg lærer noget melder der sig nye spørgsmål og vores lærer er som tidligere nævnt ikke så hurtig til at svare, ind i mellem går der så lang tid at man har glemt hvad man spurgte om, derfor tak og lov for jer. Det er p*sse irreterende når man sidder og bokser med noget og ikke kan komme videre, så lad mig bare benytte lejligheden til at takke for den hjælp jeg har fået, det betyder mere end du kan forstille dig!
Avatar billede arne_v Ekspert
26. september 2004 - 20:06 #48
ok - jeg er kun 39
Avatar billede maxmuldjord Nybegynder
26. september 2004 - 20:19 #49
hvor mange år har du programmeret Arne? Jeg mener at kunne huske at du bruger JBuilder til Java, havd bruger du til C# ?
Avatar billede arne_v Ekspert
26. september 2004 - 20:48 #50
Jeg lærte mit første programmerings sprog i 1983.

Jeg har levet af at arbejde med IT siden 1987.

Jeg bruger JBuilder og Eclipse til Java.

Til C# bruger jeg SharpDevelop.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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