C# mvc 把数据存入datatable中,如何让数据在前台的<table></table>中显示

C#mvc把数据存入datatable中,如何让数据在前台的<table><tr><td></td><td></td></tr><tr><td></td><td></td... C# mvc 把数据存入datatable中,如何让数据在前台的<table><tr><td></td><td></td></tr>
<tr><td></td><td></td></tr></table>中显示?
展开
 我来答
百度网友702ea5f
2013-06-27 · 超过14用户采纳过TA的回答
知道答主
回答量:118
采纳率:0%
帮助的人:42万
展开全部
MVC 的话需要 用ajax 才能实现,或者把datatable转为list<实体类>反回给页面

ajax:记住前面返回的是数据流
$.post("/OtherOutDepotDetail/ShowSelect?id=" + OODID, "", function(data) {
var list = data;
$("#tb tr:gt(0)").remove();
for (var i = 0; i < list.length; i++) {
var info = list[i];
var tr = $("<tr></tr>");
tr.append("<td>" + info.OODID + "</td>");
tr.append("<td>" + info.ProID + "</td>");
tr.append("<td>" + info.OODDAmount + "</td>");
tr.append("<td>" + info.OODDPrice + "</td>");
var num = eval(info.OODDAmount * info.OODDPrice);
tr.append($("<td >" + num + "</td>"));
tr.append("<td>" + info.OODDDesc + "</td>");
tr.appendTo("#tb tbody");
}
});

方法2:转 list<实体类>

public action 控制器名(){
前面的sql语句就不写了反正得到一个有值的datatable
调用SelectsAll<Product_List>(dt);
List<Product_List> list = mdhep.SelectsAll<Product_List>(dt);
ViewBag.List = list;
return View();
}

实体类:
public class Product_List
{
public int ID{get;set;} //主键
public string Product_MingCheng{get;set;} //名称
public string Product_JieShao{get;set;} //简介
}

//SelectsAll<Product_List>()方法,把datatable转换为list<实体>
public List<T> SelectsAll<T>(DataTable dt) where T : new()
{
// 定义集合
List<T> list = new List<T>();
// 获得此模型的类型
Type type = typeof(T);
//定义一个临时变量
string tempName = string.Empty;
//遍历DataTable中所有的数据行
foreach (DataRow dr in dt.Rows)
{
T t = new T();
// 获得此模型的公共属性
PropertyInfo[] propertys = t.GetType().GetProperties();
//遍历该对象的所有属性
foreach (PropertyInfo pi in propertys)
{
tempName = pi.Name;//将属性名称赋值给临时变量
//检查DataTable是否包含此列(列名==对象的属性名)
if (dt.Columns.Contains(tempName))
{
// 判断此属性是否有Setter
if (!pi.CanWrite) continue;//该属性不可写,直接跳出
//取值
object value = dr[tempName];
//如果非空,则赋给对象的属性
if (value != DBNull.Value)
pi.SetValue(t, value, null);
}
}
//对象添加到泛型集合中
list.Add(t);
}
dt.Clear();
dt.Dispose();
return list;
}

HTML:这样就行了
1,引用实体类
2
<table>
foreach(Product_List pd in ViewBag.List)
{
<tr>
<td>>@pd.Product_MingCheng</td>
<td>>>@pd.Product_JieShao</td>
</tr>
}
</table>

希望能解决你的问题,方法2应该够详细了
du瓶邪
2015-08-06 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2873万
展开全部
using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(DBO.GetConStr()))
{
//指定目标数据库的表名
bcp.DestinationTableName = "EventLog";

//建立数据源表字段和目标表中的列之间的映射
bcp.ColumnMappings.Add("ID", "ID");
bcp.ColumnMappings.Add("EventID", "EventID");
bcp.ColumnMappings.Add("DateTime", "DateTime");
bcp.ColumnMappings.Add("CardCode", "CardCode");
bcp.ColumnMappings.Add("Blance", "Blance");
//写入数据库表 dt 是数据源DataTable
bcp.WriteToServer(dt);
//关闭SqlBulkCopy实例
bcp.Close();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乐天柿子派
2013-06-27 · TA获得超过143个赞
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:76.2万
展开全部
前台 <table id="TData" runat="server"></table>
后台
public void ShowTable(DataTable datatable)
{
string html = null;
for (int i = 0; i < datatable.Rows.Count; i++)
{
html += "<tr>";
for (int j = 0; j < datatable.Columns.Count; j++)
{
html += "<td>" + datatable.Rows[i][j].ToString() + "</td>";
}
html += "</tr>";
}
TData.InnerHtml=html;
}
追问
这是aspx文件的网页吗,如果是mvc  .cdhtml格式的网页,那后台前台要怎么写,能不能写个小实例。
追答
aspx文件
mvc .cdhtml格式的网页 没做过 不会写 帮不了忙了。。。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式