JonMedlem sedan juli 20011 304 inlägg Har ett problem:
om jag försöker fllytta min connectionstring till web.config slutar den att fungera. Det går bra att skriva ut den i t.ex en label och den ser då helt rätt ut...
i web.config:
<appSettings>
<add key="connStr" value="data source=P1-031680\\NetSDK;initial catalog=rhds;integrated security=SSPI;persist security info=False;user id=sa;workstation id=P1-031680;packet size=4096" />
</appSettings>
Kodfragment från cs-sidan:
using System.Configuration;
private string connStr = ConfigurationSettings.AppSettings["connStr"];
this.conn.ConnectionString = connStr;
Varför?
JosefMedlem sedan mars 20023 561 inlägg Varför gör du det så komplicerat?
Du kan väl göra så här?
string connstr = ConfigurationSettings.AppSettings["connStr"];
SqlConnection objConn = new SqlConnection(connstr);
osv....
JonMedlem sedan juli 20011 304 inlägg Det kan jag sökert och borde kanske göra men frågan är fortfarande varför det inte fungerar :)
Ska förenkla lite men det borde inte vara någon skillnad.
Som det ser ut nu i lite mer helhet ligger det i InitializeComponent
renholmMedlem sedan apr. 20012 266 inlägg Vad får du för felmeddelande?
JonMedlem sedan juli 20011 304 inlägg Att den inte hittar sql-servern typ...
om jag gör som Josef föreslog får jag:
A field initializer cannot reference the nonstatic field, method, or property 'task.WebForm1.connStr'
Borde jag kanske gen connStr värdet från appsettings på ett annat sätt?
Det kanske är det som gör att det inte funkar på mitt ursprungliga sätt heller bara det at det inte blir något felmeddelande?
renholmMedlem sedan apr. 20012 266 inlägg Kan du skicka med lite mer kod tack inte bara din SqlConnection utan lite mer.
Som det ser ut nu i lite mer helhet ligger det i InitializeComponent
Vad menar du med det?
JonMedlem sedan juli 20011 304 inlägg Here it comes :)
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;
using System.Configuration;
using System.Data.SqlClient;
namespace task
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
private string connStr = ConfigurationSettings.AppSettings["connStr"];
protected System.Data.SqlClient.SqlCommand cmd;
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected System.Data.SqlClient.SqlConnection conn;
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
FillGrid(cmd);
}
private void FillGrid(System.Data.SqlClient.SqlCommand currentSqlCommand)
{
System.Data.SqlClient.SqlDataReader dr;
conn.Open();
dr = cmd.ExecuteReader();
DataGrid1.DataSource = dr;
DataGrid1.DataBind();
dr.Close();
conn.Close();
}
#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.cmd = new System.Data.SqlClient.SqlCommand();
this.conn = new System.Data.SqlClient.SqlConnection();
//
// cmd
//
this.cmd.CommandText = "SELECT Techs.* FROM Techs";
this.cmd.Connection = this.conn;
//
// conn
//
// this.conn.ConnectionString = connStr; // <-- Funkar inte
this.conn.ConnectionString = "data source=P1-031680\\NetSDK;initial catalog=rhds;integrated security=SSPI;persis" +
"t security info=False;user id=sa;workstation id=P1-031680;packet size=4096";
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
Jag har även provat att flytta upp
conn.ConnectionString = connStr;
från InitializeComponent till Page_Load utan frmagång...
renholmMedlem sedan apr. 20012 266 inlägg Hum, du bör ha sådant kod liggandes i Page_Load för det första. För det andra kan du kika lite i QuickStarten för att få se hur andra har lagt upp dataccessen. Som denna kod t.ex i Page_Load fungerar:
SqlConnection myConnection = new SqlConnection("server=(local)\\NetSDK;database=pubs;Trusted_Connection=yes");
SqlDataAdapter myCommand = new SqlDataAdapter("select * from Authors", myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "Authors");
MyDataGrid.DataSource=ds.Tables["Authors"].DefaultView;
MyDataGrid.DataBind();
JonMedlem sedan juli 20011 304 inlägg Ok.
Det är ju microsoftgenererad kod som ligger där. jag antog att dom la den på rätt ställe ;)
Det spelar som sagt ingen som helst roll om jag flyttar på koden. Men men.. jag pular väl på lite.
Återkommer när jag har löst problemet om någon stöter på samma sak :)