3

SQLステートメントの結果をフォームのコンボボックスに入れようとしています。私は答えを求めてネットをトロールしましたが、これ以上進むことはできません。

using (SqlCeConnection c = new SqlCeConnection(
 Properties.Settings.Default.CW2_DBConnectionString))
{
    c.Open();

    List<Visit> rows = new List<Visit>();

    SqlCeCommand cmd = c.CreateCommand();
    cmd.CommandText = "SELECT PICKUP_ID FROM PICKUP";

    c.Open();
    cmd.ExecuteNonQuery();

    SqlCeDataReader reader = cmd.ExecuteReader();

    while (reader.Read())
    {

    }

    cmbPickupID.Items.Add(rows);
}

whileループに何を入れるべきかわかりません。私は次のようなものを持っていました:

rows.Add(reader["PICKUP_ID"].ToString());

しかし、明らかにそれは機能しませんでした。VisitクラスがVisitIDを設定して取得しました。誰かアイデアはありますか?

4

3 に答える 3

5

最初に:必要ありませんcmd.ExecuteNonQuery();

次に、Visitクラスにプロパティ PICKUP_ID があり、アイテムのリストを使用している場合、次のように、文字列だけでなくVisit実際のリストを追加する必要があります。Visits

rows.Add(new Visit () {pickupid = reader["PICKUP_ID"].ToString()});

ID だけが必要な場合は、List<string>. あなたが投稿したコードは動作します。

于 2012-12-01T02:20:56.383 に答える
2

消しcmd.ExecuteNonQuery();て不要ですよね?

これを試して:

        while (reader.Read())
        {
            cmbPickupID.Items.Add(reader["PICKUP_ID"].ToString());
        }
于 2012-12-01T02:08:25.663 に答える
1

私はあなたが使用できるReflectionものと他のいくつかのものを持っています。

を使用することをお勧めしますDapper

Dapper を使用して、1 つのクエリの結果を 1 つのクラスに変換できます。

dapper を使用するには、次のようにします。

1 : プロジェクトを右クリックしてVisual studio選択しますManage Nuget Packages

2 :search Onlineテキスト ボックスに Dapper と入力します。

3 : Web でこの DLL を検索した後、それをインストールできます (ほとんどの場合、インターネットに接続しています)。

4 : 作成するDomain Class

   private class DomainClass
   {
        public int Id { get; set; }
        public string Name { get; set; }
        //public int Sex { get; set; }
        public SexEnum sex { get; set; }
   }

5 : 異なる型 (Enum 型) のフィールドに最も変換されるフィールドがある場合は、フィールドのようにしSexます。

6 : 接続文字列とsqlConnectionオブジェクトを作成します。

 var connectionStr = "Server=ArdalanShahgholiPC;Database=Dapper;User Id=sa;Password=sa;";
 SqlConnection sqlConn = new SqlConnection(connectionStr);

7 : 最後Dapper.SqlMapperに、クエリを実行してドメイン クラスに変換するために使用します。

 IList<DomainClass> TestList = Dapper.SqlMapper.Query<DomainClass>(
                                sqlConn, "Select * From ATest").ToList();

最後に使用できますTestList

于 2013-11-07T23:21:29.977 に答える