1

次の解決策が見つかりません。

コード:

class ApiData

{ SqlCeConnection conn = new SqlCeConnection(@"Data Source=C:\Users\Peter\Documents   \db.sdf;");

SqlCeCommand cmd = null;
    SqlCeDataReader rdr = null;
    public string code()
    {
        conn.Open();
        cmd = conn.CreateCommand();
        cmd.CommandText ="SELECT code FROM Charakter WHERE id=1";
        rdr = cmd.ExecuteReader();
        rdr.Read();
        string selected = rdr.GetString(0);
        conn.Close();
        return (selected);
    }
class Data{
  ApiData g= new ApiData();
    string vode = **g.code();**
}

エラー:

フィールド初期化子は、非静的フィールド、メソッド、またはプロパティを参照できません

4

2 に答える 2

7

フィールドの初期値は、定数、静的フィールド/メソッド/プロパティ、または新しいインスタンスを使用する必要があります。代わりに、コンストラクターで設定します。

class Data
{
    ApiData g;
    string vode;

    public Data()
    {
        g = new ApiData();
        vode = g.code();
    }
}
于 2012-06-13T13:16:06.413 に答える
1

staticこの問題を与えていたフィールドを作ってみてください

//INITIALLY this field was non-static 
//public string ConnectionString = "Data Source=ServerName;Initial Catalog=DBname;User Id=user_id;Password=password";

//Make this field static
public static string ConnectionString = "Data Source=ServerName;Initial Catalog=DBname;User Id=user_id;Password=password";
static SqlConnection sqlConnection = new SqlConnection(ConnectionString);

お役に立てれば...

于 2013-09-13T14:21:49.877 に答える