如果我有10个数据库表,每个表都有100~200个字段,要把这些表字段显示到网页中,怎么操作比较好?
我的思路是:
1)用c#把数据库的值读写到本地文件(txt)中,然后用javascript读取这个txt文件,显示到网页;
2)用c#把数据库的值读写到本地文件(json)中,然后用javascript读取这个json文件,显示到网页;
3)直接用c#返回一个array或者list<>值,然后用javascript取得返回的值,显示到网页。关于1和2,因为是把文件写到本地,给另一个用户用,也可以吗?会不会有权限问题?
我的思路是:
1)用c#把数据库的值读写到本地文件(txt)中,然后用javascript读取这个txt文件,显示到网页;
2)用c#把数据库的值读写到本地文件(json)中,然后用javascript读取这个json文件,显示到网页;
3)直接用c#返回一个array或者list<>值,然后用javascript取得返回的值,显示到网页。关于1和2,因为是把文件写到本地,给另一个用户用,也可以吗?会不会有权限问题?
个人理解:
你既然能从数据库中读出数据!!而且最终也是要显示在页面上,那你还要用什么存本地,又用 JS 再次循环???不是很多此一举么???既然你能直接从数据库中读,那么不管是分页读取、或者读出来存到内存中之后在去分段读取都比你什么存到本地在用JS循环遍历快吧?????而且,你要局域网别人能访问?你发布到你自己的IIS上不就好了!!!!
大数据量显示数据你肯定需要分页技术,如果想加快响应也可以使用ajax分块获取
谢谢
缓存就是把经常用的数据以key-value的形式存入数据库中,通常使用Catch,或者使用第三方缓存软件例如MemberCatch分页就是分页取数据。 asp.net 分页
用javascript读取这个json文件,显示到网页. 可以吗?或者有其他更好的方法?
Protected Sub btnSearch_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSearch.ClickDim oradb As String = "Data Source=; User Id=; Password=;"
Dim conn As New OracleConnection(oradb)
Dim ds As New DataSet
Dim da As OracleDataAdapter Dim sql As String = "select * from TableName where Filed like '%" & txtID.Text & "%' order by type"
conn.Open() da = New OracleDataAdapter(sql, conn)
da.Fill(ds)
Dim dtdetails As DataTable = dsdetails.Tables(0)
Dim json As New JavaScriptSerializer
Dim sb As New StringBuilder() sb.Append("{")
sb.Append("""")
sb.Append("ABCD")
sb.Append("""")
sb.Append(":[")
sb.Append("{") For i As Integer = 0 To dtdetails.Columns.Count - 1
sb.Append("""")
sb.Append(dtdetails.Columns(i).ColumnName)
sb.Append("""")
sb.Append(":")
sb.Append("""")
sb.Append("""")
Next sb.Append("}")
sb.Append("]}") Dim jsonfile As String = sb.ToString() My.Computer.FileSystem.WriteAllText("xxxxx\jsonfile.json", jsonfile, False)
conn.Close()End SubJavascript 读取这个json文件: $.getJSON("jsonfile.json", {}, function(data) {
for (var i = 0; i < data.ABCD.length; i++) {
for (var key in data.ABCD[i]) {
details += '<tr><td>' + key + ':' + '</td>' + '<td>' + '<a href = "xxxx">' + data.ABCD[i][key] + '</a>' + '</td></tr>';
}
}
}