J'ai des données (3 variables) à récupérer à partir de la base de données d'accès ms (tableau des produits) et de l'afficher sur la page ASPX. J'ai réussi à afficher uniquement la première ligne de données. Semble que ce problème est dans le code de page aspx dans la boucle foreach. Je ne peux tout simplement pas tourner la tête.afficher plusieurs lignes
est ici classe ProductController:
public ActionResult Index()
{
string str = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\vindom\\Desktop\\DB2.accdb";
// connection string from database Properties
OleDbConnection con = new OleDbConnection(str);
OleDbCommand cmd;
OleDbDataReader reader;
con.Open();
{
cmd = new OleDbCommand("SELECT * FROM product", con);
reader = cmd.ExecuteReader();
while(reader.Read())
{
ViewData["Prod_Type"] = reader.GetValue(0);
ViewData["Prod_N"] = reader.GetValue(1);
ViewData["Prod_d"] = reader.GetValue(2);
}
con.Close();
return View();
}
}
Et voici le code ASPX:
<table>
<tr>
<th>Product Type</th>
<th>Product Number</th>
<th>Product Details</th>
<th></th>
</tr>
<%@foreach (var item in View)
{%>
<tr>
<td><%= Html.Encode(ViewData["Prod_Type"]) %></td>
<td><%= Html.Encode(ViewData["Prod_N"]) %></td>
<td><%= Html.Encode(ViewData["Prod_d"]) %></td>
</tr>
<%}%>
</table>
..et Product.cs
namespace Tok.Models
{
public class Product
{
public string Product_Type { get; set; }
public string Product_NUM { get; set; }
public string Product_desc { get; set; }
public ICollection<Process> Processes;
}
public class Process
{
public string ProcessId { get; set; }
public string Process_desc { get; set; }
public string Next_processs { get; set; }
public virtual Product Product { get; set; }
}
}
J'ai modifié votre titre. S'il vous plaît voir, "[Les questions devraient inclure" tags "dans leurs titres?] (Http://meta.stackexchange.com/questions/19190/)", où le consensus est "non, ils ne devraient pas". –