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>中显示? 展开
<tr><td></td><td></td></tr></table>中显示? 展开
3个回答
展开全部
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应该够详细了
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应该够详细了
展开全部
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();
}
{
//指定目标数据库的表名
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();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前台 <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;
}
后台
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格式的网页 没做过 不会写 帮不了忙了。。。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询