0

我使用 Visual C# 的第二天(经过多年的 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,对于一个真正轻量级且易于使用的 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 回答