PHP на asp.net: как отобразить результаты sql в представлении - PullRequest
1 голос
/ 14 февраля 2011

Во-первых, я - разработчик PHP, пытающийся разобраться с asp.net.

, поэтому я создал базовый проект MVC.

У меня есть запрос без известных полей (т.е.выбрать * из продуктов) как мне:

  1. выполнить в контроллере - моя попытка:

    public ActionResult getProducts() 
    {
    
        using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["myDB"].ToString()))
        {
            string sql = "select * from products";
    
            SqlCommand cmd = new SqlCommand(sql, cn);
            cn.Open();
            SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);              
        }
    
        return View();  
    }
    
  2. как передать результатыв View, а затем переберите их, как:

    foreach ($data as $key => $val) 
    {
        echo $key.' = '.$val.'<br>';
    }
    

, пожалуйста, помогите, так как это SOOOOO просто в PHP, но, кажется, очень запутанно в asp.net.

пс.извините за форматирование.

ура, трав.

1 Ответ

1 голос
/ 14 февраля 2011

Сначала вам понадобится модель класса:

public class Product
{
    public string Name { get; set; }
    public int Price { get; set; }
    public int Id { get; set; }
} 

А в вашем контроллере:

public ActionResult getProducts() 
    {

                    var products = new List<Product>();

        using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["myDB"].ToString()))
        {
            string sql = "select * from products";

            SqlCommand cmd = new SqlCommand(sql, cn);
            cn.Open();
            SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); 

                            //read the results
                            while(rdr.Read() )
                            {
                                //map or hydrate a new product
                                var p = new Product();
                                p.Name = rdr["Name"];
                                p.Id = Int.Parse(rdr["Id"]);
                                p.Price = Int.Parse(rdr["Price"]);

                                //add new product to list we created earlier
                                products.Add( p );
                            }            
        }

        return View(products);  
    }

И в представлении:

     //make sure the page inherits from ViewPage<List<Product>>       

     <% foreach( var product in Model ) { %>
          <%= product.Name %>
     <% } %>

Одна оговорка. Вы делаете это «трудным путем», не используя ORM, такой как Entity Framework или Nhibernate, и не следуя передовым методам, не используя модель представления. Это хорошо для того, чтобы просто учиться, конечно, просто что-то, чтобы знать. ;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...