2014-10-10 51 views
0

我遵循本教程(http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api)在我的ASP.NET Web應用程序中設置Web API。但是,它並沒有討論如何從數據庫中檢索記錄。它不是硬編碼啞數據到控制器,就像這樣:從SQL DB獲取數據用於ASP.NET Web窗體API

Product[] products = new Product[] 
    { 
     new Product { Id = 1, Name = "Tomato Soup", Category = "Groceries", Price = 1 }, 
     new Product { Id = 2, Name = "Yo-yo", Category = "Toys", Price = 3.75M }, 
     new Product { Id = 3, Name = "Hammer", Category = "Hardware", Price = 16.99M } 
    }; 

比方說,我有我的SQL數據庫的表稱爲「產品」,我怎麼會在那裏,而不是獲取產品數據?如果有人能指出我的方向正確,我將不勝感激。

我曾嘗試使用函數,但它沒有工作。

DataTable dbProducts = new DataTable(); 
dbProducts = Wrapper.getProducts(); 
+0

首先你需要有一個數據庫表並用它記錄如果您對打想要從數據庫中獲取數據。其次,您需要添加數據訪問層,以便查詢數據庫並獲取所需的記錄,以便Web API使用它們。 請按照本教程中的步驟進行操作,因爲它顯示瞭如何在Web API中使用實體框架:http://www.asp.net/web-api/overview/creating-web-apis/using-web-api-with -entity-framework/part-1 – 2014-10-10 16:09:56

回答

0

如果連接不工作檢查出這個網站http://www.sqlstrings.com/ 和修改連接字符串到您想要的數據庫類型。如果這是更多的學習經驗,我建議你使用linq來sql或實體框架。

複製麪食代碼:

 // Create a connection to the database   
    SqlConnection conn = new SqlConnection("Data Source=MyDBServer;Initial Catalog=MyDB;Integrated Security=True"); 
    // Create a command to extract the required data and assign it the connection string 
    SqlCommand cmd = new SqlCommand("SELECT * FROM Product", conn); 
    cmd.CommandType = CommandType.Text; 
    // Create a DataAdapter to run the command and fill the DataTable 
    SqlDataAdapter da = new SqlDataAdapter(); 
    da.SelectCommand = cmd; 
    DataTable dt = new DataTable(); 
    da.Fill(dt); 
List<Product> products = new List<Product>(); 
foreach(DataRow row in dt.Rows) 
{ 
    products.add(New Product{ row["Id"], row["Name"], row["Category"], row["Price"]}); 
} 
+0

因此,在執行此操作後,如何將數據添加到產品數組中? – aberhamm 2014-10-10 16:42:57

+0

您可以遍歷表的每一行並填充數組。 – Theyouthis 2014-10-10 17:55:20

+0

添加列表人口而不是數組,主要是因爲我更喜歡列表。 – Theyouthis 2014-10-10 18:01:32

0

您可以使用實體框架+庫從數據庫中快速獲取數據。

如果您已經在您的SQl數據庫中有一個名爲Product的表,請配置您的EF並在項目中提供所有EF參考。

我還沒有看到的教程,但只給你一個快速和粗略的想法...

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

public AppContext : DbContext 
{ 
public DbSet<Product> Products {get;set;} 
} 


    public class IProductRepository 
    { 
     public IQuerable<Product> Products{get;} 
    } 

    public class ProductRepository : IProductRepository 
    { 
    private AppContext context = new DBContext(); 

    public IQuerable<Product> Products 
    { 
     get 
    { 
    context.Products; 
    } 
    } 

    } 



    Now in your Web Api method & controller.... 


    public class ProductController 
    { 
    private IProductRepository repo; 

     public ProductController() 
    { 
     repo = new ProductRepository(); // or use DI 
    } 

    public List<Product> Get() 
    { 
    return repo.Products.ToList(); 
    } 

    } 
相關問題