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 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.
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.