【发布时间】:2019-09-25 04:07:32
【问题描述】:
找到下面的代码并帮助我哪里出错了,因为数据没有提取到 jQuery 数据表中(数据仅以 JSON 格式显示)
步骤:1 创建Datatbase访问层,然后是一个名为Db2的类
public class Db2
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString);
public DataSet show_data()
{
SqlCommand com = new SqlCommand("SP_Company_All", con);
com.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(com);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
}
步骤:2 创建空控制器并按以下方式编码
public class Company1Controller : Controller
{
Database_Access_layer.Db2 db2layer = new Database_Access_layer.Db2();
// GET: Company1
public ActionResult Index()
{
return View();
}
public JsonResult get_data()
{
DataSet ds = db2layer.show_data();
List<Company1> listcomp = new List<Company1>();
foreach (DataRow dr in ds.Tables[0].Rows)
{
listcomp.Add(new Company1
{
CompanyID = Convert.ToInt32(dr["CompanyID"]),
CompanyName = dr["CompanyName"].ToString(),
CompanyCode = dr["CompanyCode"].ToString(),
Wecare_companyId = Convert.ToInt32(dr["Wecare_companyId"]),
LicenseCount = Convert.ToInt32(dr["LicenseCount"]),
active = Convert.ToBoolean(dr["active"]),
ModifiedBy = Convert.ToInt32(dr["ModifiedBy"]),
Lastmodifiedon = Convert.ToDateTime(dr["Lastmodifiedon"])
});
}
var data = listcomp;
return Json(listcomp, JsonRequestBehavior.AllowGet);
}
}
Step3:那么View部分就像............
@{
ViewBag.Title = "Company1 Page";
Layout = null;
}
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<!-- CDN LINKS-->
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/4.3.1/cerulean/bootstrap.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.19/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/1.10.19/js/dataTables.bootstrap4.min.js"></script>
</head>
<body>
<div class="jumbotron">
<h1>DataTable Example</h1>
<p class="lead">A project dedicated to data table example in MVC</p>
</div>
<br />
<center>
<div style="width: auto; border: 1px solid black; padding: 3px" ;>
<table id="dataTable">
<thead>
<tr>
<th>CompanyID</th>
<th>CompanyName</th>
<th>CompanyCode</th>
<th>WeCareCompanyID</th>
<th>LicenseCount</th>
<th>Active</th>
<th>ModifiedBy</th>
<th>LastModifiedOn</th>
</tr>
</thead>
</table>
</div>
</center>
----- Scripting Part be like
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
"url": "@Url.Action("get_data", "Company1")",
"method": "post",
"dataType" : "json",
success: function (data) {
$('#dataTable').DataTable({
paging: true,
sort: true,
searching: true,
scrollY: 200,
data:data,
columns: [
{ 'data': 'CompanyID'},
{ 'data': 'CompanyName' },
{ 'data': 'CompanyCode' },
{ 'data': 'Wecare_companyId' },
{ 'data': 'LicenseCount' },
{ 'data': 'active' },
{ 'data': 'ModifiedBy' },
{ 'data': 'Lastmodifiedon'}
]
});
}
});
});
</script>
</body>
</html>
}
Here is a code of database access layer, controller and view too but data is not displaying in Datatable. Tried in Multiple ways.But No Luck
【问题讨论】:
-
第 24 行的错误信息是什么?
-
列 'LicenseCount' 不属于表 Table。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。异常详细信息:System.ArgumentException:列“LicenseCount”不属于表 Table。
-
删除
LicenseCount = Convert.ToInt32(dr["LicenseCount"]),行以避免异常。它清楚地告诉您LicenseCount不是存储过程返回的表中的列。您也可以将该列添加到您的存储过程中。如果您需要帮助,请发布SP_Company_All的代码。 -
这个错误发生只是因为SP正在使用,好像现在更改SP后错误消失了。现在数据以Json格式显示而不是提取到数据表中......!跨度>
-
亲爱的 Rahul 感谢您的时间和支持,但我在过去 12 小时内没有时间触摸我的笔记本电脑,我将在接下来的 48 小时内更新您,因为我正忙于其他事情
标签: c# asp.net-mvc stored-procedures datatables