Jag fixade först till en class i min form med databasanrop och dyl. Din statiska (klass) metod använder sig av variabler som inte är statiska. Dvs de kräver en instans av klassen. Antingen så får du sätta dina variabler till static, eller så tar du bort static i metoden och anropar via en instans istället. typDatabasproblem.
Allt fungerade kanonbra.
För att inte koden skulle bli för lång, så ville jag lägga detta i en särskild class-fil i stället, då kom problemen.
Så här har jag det:
<code>
using System;
using System.Windows.Forms;
using System.IO;
using System.Data;
using System.Data.OleDb;
using System.Text.RegularExpressions;
//**********
public class DataBasTools
{
public OleDbConnection con;
public OleDbDataAdapter da;
public DataSet ds;
public DataBasTools()
//**************
public static string Incl_for_coockies(string DataPlats,ListBox lb)
{
string Constring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + DataPlats;
con = new OleDbConnection(Constring);
String s = "SELECT shortLang,Lang FROM t_lang";
da = new OleDbDataAdapter(s,con);
ds = new DataSet("Language");
//osv
</code>
Jag får felmedelandet:
<code>
E:\MultLanguage\MultLanguage\DataBasTools.cs(39): 'MultLanguage.DataBasTools.con' denotes a 'field' where a 'class' was expected
</code>
...detsamma gäller för da och ds också.
Min fråga, kan man inte göra på det här sättet?
Hur bör jag lösa det?
[REDIGERAT]
Fel av mig.
<code>
OleDbConnection con = new OleDbConnection(Constring);
String s = "SELECT shortLang,Lang FROM t_lang";
OleDbDataAdapter da = new OleDbDataAdapter(s,con);
DataSet ds = new DataSet("Language");
</code>
Det var ju deklarationen som var fel...Sv: Databasproblem.
DataBasTools tool=new DataBasTools();
...
tool.Incl_for_coockies(...);
Läs lite mer om static här:
http://www.csharphelp.com/archives/archive148.html
du kan ju oxå fundera på ett singleton pattern...
http://www.c-sharpcorner.com/Code/2003/Jan/SingletonPattern.asp