0

私はC#2010ExpressとSqlCompactを使用しています。「Records」という名前のテーブルと「Names」という名前の列があり、その名前をリストボックスにリストします。

そのコードを書きましたが、最後の行は「ExecuteReader:接続プロパティが初期化されていません」です。例外。

  SqlCeConnection Baglan = new SqlCeConnection("Data Source=|DataDirectory|CeoDatabase.sdf;Password=CeoDB;Persist Security Info=True");

        Baglan.Open();

    SqlCeCommand BarlariAl = new SqlCeCommand("SELECT Names FROM Barlar");

    SqlCeDataReader BarlariOku = BarlariAl.ExecuteReader();
4

2 に答える 2

2

次に何を書くかについては、listbox(変数名が与えられた場合の太字の仮定)という名前のリストボックスがあると仮定して、次のように記述します。

while(BarlariOku.Read())
    listbox.Items.Add(BarlariOku["Names"]);

余談ですが、オブジェクトを適切に破棄していません。次のようになります。

using(var conn = new SqlCeConnection("Data Source=|DataDirectory|CeoDatabase.sdf;Password=CeoDB;Persist Security Info=True"))
{
    conn.Open();

    var comm = new SqlCeCommand("SELECT Names FROM Barlar", conn);
    SqlCeDataReader reader = comm.ExecuteReader();

    while(reader.Read())
        listbox.Items.Add(reader["Names"]);
}
于 2011-02-20T16:39:26.943 に答える
0

接続をコマンドに関連付けていません。以下のコードを試してください。

SqlCeCommand BarlariAl = new SqlCeCommand("SELECT Names FROM Barlar", Baglan);

列を一覧表示するには、 MSDNから借用したこのコードを試してください(中括弧を追加)。

string query = "SELECT [Order ID], [Customer] FROM Orders";
SqlCeConnection conn = new SqlCeConnection(connString);
SqlCeCommand cmd = new SqlCeCommand(query, conn);

conn.Open();
SqlCeDataReader rdr = cmd.ExecuteReader();

try
{
    // Iterate through the results
    //
    while (rdr.Read())
    {
        int val1 = rdr.GetInt32(0);
        string val2 = rdr.GetString(1);
    }
}
finally
{
    // Always call Close when done reading
    //
    rdr.Close();

    // Always call Close when done reading
    //
    conn.Close();
}
于 2011-02-20T16:29:02.323 に答える