webForumDet fria alternativet

Dataconnection i C#

18 svar · 481 visningar · startad av maqe

maqeMedlem sedan dec. 2003824 inlägg
#1

Kan någon förklara vad som är fel här ... har kört denna kod fast i vb.net och då fungerade det klockrent men inte i C#... Jag har hittat ett fel och det var att man skulle använda [] istället för () efter configurationsettings.appsettings.

felet jag får är här ...

public SqlConnection objConnection = CreateConnection(myConnString);

och felmeddelandena ser ut såhär ...

A field initializer cannot reference the nonstatic field, method, or property 'community.MyDataAccessCls.myConnString'

och

No overload for method 'CreateConnection' takes '1' arguments

GladhMedlem sedan maj 20012 812 inlägg
#2

No overload for method 'CreateConnection' takes '1' arguments

Din funktion CreateConnection tillåter dig inte att endast skicka in 1 parameter av typen sträng till den. Antingen så vill den inte har några parameter alls, eller så vill den ha fler eller endast 1 av annan typ.

field initializer cannot reference the nonstatic field, method, or property 'community.MyDataAccessCls.myConnString

Svårt att säga då jag inte kan se koden i CreateConnection men jag gissar på att i classen MyDataAccessCls så finns det en variabler som heter myConnString och denna försöker du nå utan att ha instansierat ett nytt objekt av klassen MyDataAccessCls.

- Magnus

maqeMedlem sedan dec. 2003824 inlägg
#3

Såhär ser delar av min klass ut ...

//## Definera anslutningssträngen till database #
public string myConnString = ConfigurationSettings.AppSettings["conn"];
public SqlConnection objConnection = CreateConnection(myConnString);

  //## Skapa anslutningen #
  private SqlConnection CreateConnection()
  {
  	SqlConnection myConnection = new SqlConnection(myConnString.Replace("%APPFOLDER%", HttpRuntime.AppDomainAppPath));
  	return myConnection;
  }

Har provat att inte skicka med nått argument till CreateConnection() utan framgång

GladhMedlem sedan maj 20012 812 inlägg
#4

Om din CreateConnection() ser ut som den gör, skall du inte skicka med något till den. Den tar ju inte emot några parameters och det skall alltås inte sändas några till den.

Vad får du för fel, när du inte skickar med något till CreateConnection().

- Magnus

NickemannenMedlem sedan aug. 20003 575 inlägg
#5
//## Definera anslutningssträngen till database #
public string myConnString = ConfigurationSettings.AppSettings["conn"];
public SqlConnection objConnection = CreateConnection(myConnString);

//## Skapa anslutningen #
private SqlConnection CreateConnection([b]myConnString[/b])
{
SqlConnection myConnection = new SqlConnection(myConnString.Replace("%APPFOLDER%", HttpRuntime.AppDomainAppPath));
return myConnection;
}

Så kanske

maqeMedlem sedan dec. 2003824 inlägg
#6

Gladh skrev:

Om din CreateConnection() ser ut som den gör, skall du inte skicka med något till den. Den tar ju inte emot några parameters och det skall alltås inte sändas några till den.

Vad får du för fel, när du inte skickar med något till CreateConnection().

- Magnus

Om jag inte skickar med nått argument till min CreateConnection får jag detta fel

A field initializer cannot reference the nonstatic field, method, or property 'community.MyDataAccessCls.CreateConnection()'

maqeMedlem sedan dec. 2003824 inlägg
#7

Nickemannen skrev:

//## Definera anslutningssträngen till database #
public string myConnString = ConfigurationSettings.AppSettings["conn"];
public SqlConnection objConnection = CreateConnection(myConnString);


//## Skapa anslutningen #
private SqlConnection CreateConnection([b]myConnString[/b])
{
SqlConnection myConnection = new SqlConnection(myConnString.Replace("%APPFOLDER%", HttpRuntime.AppDomainAppPath));
return myConnection;
}

Så kanske

Det fungerade inte heller tyvärr

JosefMedlem sedan mars 20023 561 inlägg
#8

maqe skrev:

Nickemannen skrev:

Så kanske

Det fungerade inte heller tyvärr

Samma fel?

maqeMedlem sedan dec. 2003824 inlägg
#9

Josef skrev:

maqe skrev:

Nickemannen skrev:

Så kanske

Det fungerade inte heller tyvärr

Samma fel?

Detta fel får jag när jag gör så

//================================================
//## Definiera Anslutningssträng till Databasen #
public string myConnString = ConfigurationSettings.AppSettings["connString"];
public SqlConnection objConnection = CreateConnection(myConnString);
//================================================
//## Skapa Anslutning #
private SqlConnection CreateConnection(myConnString)
{
SqlConnection myConnection = new SqlConnection(myConnString.Replace("%APPFOLDER%", HttpRuntime.AppDomainAppPath));
return myConnection;
}

Felmeddelande:

Identifier expected

DinoMedlem sedan sep. 20011 914 inlägg
#10
//## Skapa Anslutning #
private SqlConnection CreateConnection([b]string[/b] myConnString) 
{
   SqlConnection myConnection = new SqlConnection(myConnString.Replace("%APPFOLDER%", HttpRuntime.AppDomainAppPath));
   return myConnection;
}
maqeMedlem sedan dec. 2003824 inlägg
#11

Har testat det med eftersom det är det korrekta sättet :)
dom här felen får jag då...

field initializer cannot reference the nonstatic field, method, or property 'community.MyDataAccessCls.CreateConnection(string)'

A field initializer cannot reference the nonstatic field, method, or property 'community.MyDataAccessCls.myConnString'

DinoMedlem sedan sep. 20011 914 inlägg
#12

Hur ser classen ut?
Och hur ser koden ut som du anropar methoden ifrån?

PDahlenMedlem sedan apr. 2004778 inlägg
#13

Har du verkligen connString på rätt sätt i din web.config?

DinoMedlem sedan sep. 20011 914 inlägg
#14
//Alt 1
public class MyDataAccessCls
{
   private string _myConnString;
   private SqlConnection _objConnection;

   public MyDataAccessCls()
   {
      this._myConnString = ConfigurationSettings.AppSettings["connString"].ToString().Replace("%APPFOLDER%", HttpRuntime.AppDomainAppPath);
      this._objConnection = CreateConnection(myConnString);
   }

   //## Skapa Anslutning #
   private SqlConnection CreateConnection(string myConnString) 
   {
      return new SqlConnection(myConnString);
   }
}

//Alt 2
public sealed class MyDataAccessCls
{
   private static string _myConnString;
   private static SqlConnection _objConnection;

   static MyDataAccessCls() 
   {
      this._myConnString = ConfigurationSettings.AppSettings["connString"].ToString().Replace("%APPFOLDER%", HttpRuntime.AppDomainAppPath);
      this._objConnection = CreateConnection(myConnString);
   }

   //## Skapa Anslutning #
   private SqlConnection CreateConnection(string myConnString) 
   {
      return new SqlConnection(myConnString);
   }
}
maqeMedlem sedan dec. 2003824 inlägg
#15

PDahlen skrev:

Har du verkligen connString på rätt sätt i din web.config?

Japps jag har den efter configuration men före system.web i min web.config ...

såhär ser det ut ...

<appSettings>
<add key="connString" value="server=localhost;uid=användare;password=lösenord;database=databas"/>
</appSettings>

PDahlenMedlem sedan apr. 2004778 inlägg
#16

Du har väl appSettings innanför Configuration-taggarna? Det är det viktiga. Sedan om appSettings eller system.web kommer först spelar ingen roll.

<configuration>
    
  <system.web>
    bla bla... system.web kod
  </system.web>

  <appSettings>
    <add key="connString" value=" server=localhost;uid=användare;password=lösenord;database=da
tabas"/>
  </appSettings>

</configuration>
maqeMedlem sedan dec. 2003824 inlägg
#17

PDahlen skrev:

Du har väl appSettings innanför Configuration-taggarna? Det är det viktiga. Sedan om appSettings eller system.web kommer först spelar ingen roll.

<configuration>
    
  <system.web>
    bla bla... system.web kod
  </system.web>

  <appSettings>
    <add key="connString" value=" server=localhost;uid=användare;password=lösenord;database=da
tabas"/>
  </appSettings>

</configuration>

Japps den är innanför configuration taggarna ...

VimpMedlem sedan juli 20022 537 inlägg
#18

Ska du verkligen ha ett sådant radbyte?

Testa detta:

<configuration>
    
  <system.web>
    bla bla... system.web kod
  </system.web>

  <appSettings>
    <add key="connString" value="  server=localhost;uid=användare;password=lösenord;database=databas"/>
  </appSettings>

</configuration>

/r
Såg inte att det blev ett radbyte automatiskt när man postade.. sorry.

maqeMedlem sedan dec. 2003824 inlägg
#19

Här är lösningen ...

//================================================
//## Definiera Anslutningssträng till Databasen #

  public static string myConnString = ConfigurationSettings.AppSettings\["connString"\];
  public static SqlConnection objConnection = CreateConnection();

  //================================================
  //## Skapa Anslutning #
  private static SqlConnection CreateConnection() 
  {
  	SqlConnection myConnection = new SqlConnection(myConnString.Replace("%APPFOLDER%", HttpRuntime.AppDomainAppPath));
  	return myConnection;
  }
130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)