22. oktober 2005 - 09:20Der er
21 kommentarer og 1 løsning
oprette forb og indsætte data i access db
Jeg har denne kode: 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;
private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here string sConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source=K:/Visual studio projects/News (2)/News.mdb"; OleDbConnection dbConn = new OleDbConnection(sConnection);
Label1.Text = dbConn.State.ToString();
}
#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.bnCreate.Click += new System.EventHandler(this.bnCreate_Click); this.bnClear.Click += new System.EventHandler(this.bnClear_Click); this.Load += new System.EventHandler(this.Page_Load);
} #endregion
private void bnCreate_Click(object sender, System.EventArgs e) { string sConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source=K:/Visual studio projects/News (2)/News.mdb"; OleDbConnection dbConn = new OleDbConnection(sConnection); dbConn.Open(); int result; string sql, HeadLine, Story, CreatedOn; HeadLine = tbHeadLine.Text; Story = tbStory.Text; CreatedOn = tbPostedOn.Text; sql = String.Format("INSERT INTO News(HeadLine, Story, CreatedOn) Values('{0}','{1}','{2}');", HeadLine, Story, CreatedOn); OleDbCommand dbCmd; dbCmd = new OleDbCommand(); dbCmd.CommandText = sql;
dbCmd.Connection = dbConn; result = dbCmd.ExecuteNonQuery();
Den kompiler fint men når jeg trykker på opret knappen sker dette:
Serverfejl i programmet '/XstremeWeb/CMSBeta2/News'. --------------------------------------------------------------------------------
"" kan ikke bruges, fordi filen allerede er i brug. Beskrivelse: Der opstod en ikke-afviklet undtagelse under udførelse af den aktuelle webanmodning. Se staksporingen for at få yderligere oplysninger om fejlen, og hvor den kom fra i koden.
Detaljer om undtagelse: System.Data.OleDb.OleDbException: "" kan ikke bruges, fordi filen allerede er i brug.
[OleDbException (0x80004005): "" kan ikke bruges, fordi filen allerede er i brug.] System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr) System.Data.OleDb.OleDbConnection.InitializeProvider() System.Data.OleDb.OleDbConnection.Open() News.WebForm1.bnCreate_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\xstremeweb\cmsbeta2\news\webform1.aspx.cs:65 System.Web.UI.WebControls.Button.OnClick(EventArgs e) System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) System.Web.UI.Page.ProcessRequestMain()
-------------------------------------------------------------------------------- Versionsoplysninger: Microsoft .NET Framework version:1.1.4322.2032; ASP.NET version:1.1.4322.2032
Nogen der kan fortælle hvad det er jeg har gjort galt??
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
så prøv at omdøbe den til string sConnection1 = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source=K:/Visual studio projects/News (2)/News.mdb"; OleDbConnection dbConn1 = new OleDbConnection(sConnection1); Problemet er at du i pageload laver en connection og så vil du lave en ny connection med samme navn
hvis det ikke virker kan du prøve at definerer dbconn som en private. altså: private string sConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source=K:/Visual studio projects/News (2)/News.mdb"; private OleDbConnection dbConn = new OleDbConnection(sConnection);
og så slette de 2 linier fra page_load og bnCreate
Nu har jeg prøvet at gøre så det KUN er i page_load min dbConn skulle køre Koden:
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;
private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here string sConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source=K:/Visual studio projects/News (2)/News.mdb"; OleDbConnection dbConn = new OleDbConnection(sConnection); dbConn.Open(); Label1.Text = dbConn.State.ToString();
}
#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.bnCreate.Click += new System.EventHandler(this.bnCreate_Click); this.bnClear.Click += new System.EventHandler(this.bnClear_Click); this.Load += new System.EventHandler(this.Page_Load);
Serverfejl i programmet '/XstremeWeb/CMSBeta2/News'. --------------------------------------------------------------------------------
"" kan ikke bruges, fordi filen allerede er i brug. Beskrivelse: Der opstod en ikke-afviklet undtagelse under udførelse af den aktuelle webanmodning. Se staksporingen for at få yderligere oplysninger om fejlen, og hvor den kom fra i koden.
Detaljer om undtagelse: System.Data.OleDb.OleDbException: "" kan ikke bruges, fordi filen allerede er i brug.
[OleDbException (0x80004005): "" kan ikke bruges, fordi filen allerede er i brug.] System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr) System.Data.OleDb.OleDbConnection.InitializeProvider() System.Data.OleDb.OleDbConnection.Open() News.WebForm1.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\xstremeweb\cmsbeta2\news\webform1.aspx.cs:33 System.Web.UI.Control.OnLoad(EventArgs e) System.Web.UI.Control.LoadRecursive() System.Web.UI.Page.ProcessRequestMain()
-------------------------------------------------------------------------------- Versionsoplysninger: Microsoft .NET Framework version:1.1.4322.2032; ASP.NET version
der er et eller andet sted hvor forbindelsen til databasen formodentlig ikke er lukket korrekt. Eller også er det fordi at forbindelsen forsøges åbnet igen i page load hvis du har lavet et post back.
prøv med denne kode: 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;
private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here
Label1.Text = dbConn.State.ToString();
}
#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.bnCreate.Click += new System.EventHandler(this.bnCreate_Click); this.bnClear.Click += new System.EventHandler(this.bnClear_Click); this.Load += new System.EventHandler(this.Page_Load);
har droppet det lige nu.. vender tilbage når jeg får tid til dette projekt
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.