0

Visual C# を使用して 2 日目 (PHP を何年も使用した後)、SQL データベースにアクセスしようとしています。

私は「レコード」クラスを持っています

public class Class1
{
   public int Id { get; set; }
   public string Name { get; set; }
   public string Category { get; set; }
   public decimal Price { get; set; }
}

このクラスのインスタンス、またはこのクラスのインスタンスの配列、データベース Database1.sdf、テーブル ProductTable からのデータを入力したい:

Id int Primary
Name nvarchar 100
Category nvarchar 100
Price money

だから作った

SqlCeCommand cmd = new SqlCeCommand("SELECT * FROM ProductTable WHERE id=4");
cmd.Connection = conn;
Class1 row = cmd.

そこでは、どうすればよいのかわかりません。同様に

SqlCeCommand cmd = new SqlCeCommand("SELECT * FROM ProductTable");
cmd.Connection = conn;
Class1[] rows = cmd.

データベースからデータ オブジェクトをフェッチするための推奨される方法はどれですか?

4

2 に答える 2

3

あなた自身を支持して、ある種のORMの使い方を学びましょう。本当に軽量で使いやすいもののために、私はDapperをお勧めします。あなたは次のようなことができます:

        using (var sqlConnSource = new SqlConnection(SqlSource))
        {
            sqlConnSource.Open();
            var myProducts = sqlConnSource.Query<Class1>("SELECT * FROM Products").ToList();
            foreach (var p in myProducts)
            {
                //do something more useful here if you want
              Console.Writeline("The product name is:" + p.Name)

            }
        }
于 2013-10-09T10:33:51.273 に答える
1

ORM/Entity フレームワークに行かずにそれが必要な場合は、C# で簡単に実行できます。

using (SqlCeCommand cmd = new SqlCeCommand("SELECT * FROM ProductTable WHERE id=@val", conn))
{
    //read search value from from text field
    cmd.Parameters.AddWithValue("@val",<whateverthevalue>);
    conn.Open();

    SqlCeDataReader reader = cmd.ExecuteReader();
    if(reader.Read()) //use while if you want to get multiple records 
     {
    Class1Obj.id= reader.GetString(0);
    Calss1Obj.Name= reader.GetString(1);
    .....
      }

    conn.Close();
}
于 2013-10-09T10:49:24.747 に答える