asp.net新聞列表生成靜態(tài)頁之批量和單頁生成
大家都知道,生成靜態(tài)頁的方法有兩種,第一種是使用C#在后臺硬編碼,第二種是讀取模板文件,使用字符串代替??傮w來講第一種方法代碼量比較大,維護起來有點困難。生成靜態(tài)頁的目的是為了提高用戶體驗度,加快訪問速度。
使用靜態(tài)頁面還有如下好處:
1、 安全:使用靜態(tài)頁面,用戶訪問的使沒有任何操作功能的html頁面,可以說從安全性方面大大提高了程序及服務(wù)器的安全。
2、 快速:用戶訪問的是提前生成好的靜態(tài)頁面,使用戶對頁面的請求瓶頸只受IO的限制而不會有其他方面的影響。
3、 降低服務(wù)器,數(shù)據(jù)庫負載:因為用戶訪問的是靜態(tài)頁,對承載靜態(tài)頁的服務(wù)器配置要求降低了許多,同時,不會因為過大的訪問量,造成數(shù)據(jù)庫服務(wù)器負載過重等問題。
下面分享asp.net新聞列表生成靜態(tài)頁之批量和單頁生成。前期準備,需要新建一個文件夾。。前臺展示:/new/default.aspx 這個頁面放的就是動態(tài)的新聞列表數(shù)據(jù)。
先看下圖:


不多說了上代碼
這里要說明一下,我用的AspNetPager分頁控件,需要設(shè)置一下
<webdiyer:AspNetPager ID="AspNetPager1" runat="server" FirstPageText="首頁"
LastPageText="末頁" NextPageText="下一頁" NumericButtonCount="10"
OnLoad="AspNetPager1_Load" OnPageChanged="AspNetPager1_PageChanged1"
PageSize="13" PrevPageText="上一頁" Font-Bold="False" Font-Size="13px"
CssClass="badoo" UrlPaging="true" CurrentPageButtonPosition="Center"
PagingButtonSpacing="5px" EnableUrlRewriting="True"
UrlRewritePattern="news_{0}.html" ShowMoreButtons="False"
ShowPageIndexBox="Never" >
</webdiyer:AspNetPager>
需要設(shè)置三個地方:
UrlPaging="true" 設(shè)置啟用url來傳遞分頁信息 EnableUrlRewriting="True" 啟用URL重寫 UrlRewritePattern="news_{0}.html" 設(shè)置分頁URL重寫格式
Static.ashx頁面代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
using System.IO;
using System.Net;
using System.Data;
namespace Web.admin.ashx
{
/// <summary>
/// Static 生成靜態(tài)頁
/// </summary>
public class Static : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string url = context.Request["geturl"];
string path = context.Request["getpath"];
string id = context.Request["id"];
string act = context.Request["act"];
string page = context.Request["pages"];
string pagecount = context.Request["pagecouts"];
string table = context.Request["table"];
string str = "";
if (act == "0")
{
//生成當前選中項
string ids = id.Substring(0, (id.Length - 1));
string[] s_id = ids.Split(',');
for (int i = 0; i < s_id.Length; i++)
{
string path2 = context.Server.MapPath("../../" + path + s_id[i] + ".html");
str = CreateHTML("http://localhost:4216/" + url + s_id[i], path2); //這里必須是拼接的絕對路徑
string urls = "http://localhost:4216/" + path + s_id[i] + ".html"; //這里必須是拼接的絕對路徑
string sql = string.Format("update {0} set Static =1,Url='{1}' where id={2}", table, urls, s_id[i]);
if (new DBTool.DB().RunSqlGetRowCount(sql) > 0)
{
}
}
context.Response.Write(str);
context.Response.End();
}
if (act == "1")
{
//生成當前頁列表
string path2 = context.Server.MapPath("../../" + path + page + ".html");
str = CreateHTML("http://localhost:4216/" + url + page, path2);
context.Response.Write(str);
context.Response.End();
}
if (act == "2")
{
//生成全部列表
int count = Convert.ToInt32(pagecount);
for (int i = 1; i <= count; i++)
{
string path2 = context.Server.MapPath("../../" + path + i + ".html");
str = CreateHTML("http://localhost:4216/" + url + i, path2);
}
context.Response.Write(str);
context.Response.End();
}
if (act == "3")
{
//生成全部項
string sqlsel =string.Format("select Id from {0}",table);
DataTable dt = new DBTool.DB().RunSqlGetDataTable(sqlsel);
if (dt.Rows.Count > 0)
{
string idall = "";
for (int i = 0; i < dt.Rows.Count; i++)
{
idall += dt.Rows[i]["Id"].ToString()+",";
}
string ids = idall.Substring(0, (idall.Length - 1));
string[] s_id = ids.Split(',');
for (int ii = 0; ii < s_id.Length; ii++)
{
string path2 = context.Server.MapPath("../../" + path + s_id[ii] + ".html");
str = CreateHTML("http://localhost:4216/" + url + s_id[ii], path2);
string urls = "http://localhost:4216/" + path + s_id[ii] + ".html";
string sql = string.Format("update {0} set Static =1,Url='{1}' where id={2}", table, urls, s_id[ii]);
if (new DBTool.DB().RunSqlGetRowCount(sql) > 0)
{
}
}
context.Response.Write(str);
context.Response.End();
}
}
}
public string CreateHTML(string strurl, string path)
{
string str = "";
StreamReader sr;
StreamWriter sw = null;
try
{
WebRequest HttpWebRequest = WebRequest.Create(strurl);
WebResponse HttpWebResponse = HttpWebRequest.GetResponse();
sr = new StreamReader(HttpWebResponse.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8"));
string strHtml = sr.ReadToEnd();
sw = new StreamWriter(path, false, System.Text.Encoding.GetEncoding("utf-8"));
sw.WriteLine(strHtml);
sw.Flush();
sw.Close();
str = "生成成功!";
}
catch (Exception ex)
{
str = "生成失敗,失敗原因" + ex.Message+"。";
}
return str;
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
后臺生成前臺代碼
<div>
<table border="0" cellpadding="0" cellspacing="0" class="list_table1">
<tr>
<td width="13%"><input type="text" runat="server" id="text_word" class="text lh20" placeholder="請輸入關(guān)鍵字"/></td>
<td width="5%">
<asp:Button ID="Button1" runat="server" Text="搜索" CssClass="suborange" OnClick="Button1_Click" />
</td>
<td width="82%"> <a href="list.aspx" class="subgreen">查看全部</a></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="list_table"><tr>
<th width="30"> </th>
<th width="60" data-field="id" data-url="newslist.aspx" >ID<img id="lab_id" src="images/a2.png" /></th>
<th width="200" data-field="Name" data-url="newslist.aspx" >名稱<img id="lab_Name" src="images/a2.png" /></th>
<th width="200" data-field="Dir" data-url="newslist.aspx">地址<img id="lab_Dir" src="images/a2.png" /></th>
<th width="150" data-field="Static" data-url="newslist.aspx">靜態(tài)化<img id="lab_Static" src="images/a2.png" /></th>
<th>操作</th>
</tr>
<asp:Repeater ID="R1" runat="server" OnItemDataBound="R1_ItemDataBound" ><ItemTemplate>
<tr class="tr" id='tr_<%#Eval("id")%>'>
<td class="td_center"><label id='labe_<%#Eval("id")%>'><asp:CheckBox ID="chkItem" runat="server" ToolTip='<%#Eval("id")%>'></asp:CheckBox></label><input type="hidden" id="text_id" runat="server" value='<%#Eval("id")%>' /></td>
<td class="td_center"> <%#Eval("id") %></td>
<td class="td_center"> <%#Eval("Name") %></td>
<td class="td_center">
<a href="javascript:;" class="a_1" data-id='<%#Eval("id") %>' data-field='Dir' data-table='HotelInfo' data-url="newslist.aspx">
<%#Eval("Dir") %></a></td>
<td class="td_center">
<asp:Label ID="lab_state" runat="server" Text='<%#Eval("Static") %>'></asp:Label>
</td>
<td class="td_center">
<a href="<%#Eval("Url") %>" class="a_2" target="_blank">查看</a>
<%--data-table data-fild 為復(fù)制數(shù)據(jù)的表明和字段--%>
<span data-id="<%#Eval("id") %>" class="more" data-table="users" data-fild="Name,PassWord" data-url="list.aspx" data-itemid="<%# Container.ItemIndex + 1%>">更多操作</span>
</td></tr>
</ItemTemplate>
</asp:Repeater></table>
<div id="div_none" runat="server" visible="false" style="width: 300px; margin: 20px auto">很抱歉,暫無數(shù)據(jù)。</div>
<div id="button" class="mt10">
<input type="button" name="button" class="btn btn82 btn_del" value="刪除" onclick="dels('HotelInfo', 'newslist.aspx')" />
<input type="button" name="button" class="btn btn82 btn_checked" value="全選" onclick="QuanXuan()" />
<input type="button" name="button" class="btn btn82 btn_nochecked" value="取消" onclick="FanXuan()" />
<asp:Button ID="Button3" runat="server" Text="添加" CssClass="btn btn82 btn_add" PostBackUrl="addarticle.aspx" />
</div>
<webdiyer:AspNetPager ID="AspNetPager1" runat="server" FirstPageText="首頁" LastPageText="末頁" NextPageText="下一頁" NumericButtonCount="10" OnLoad="AspNetPager1_Load" OnPageChanged="AspNetPager1_PageChanged1" PageSize="13" PrevPageText="上一頁" Font-Bold="False" Font-Size="13px" CssClass="badoo" UrlRewritePattern="" UrlPaging="true" CurrentPageButtonPosition="Center" PagingButtonSpacing="5px" ShowFirstLast="False" ShowMoreButtons="False" ShowPageIndexBox="Never" >
</webdiyer:AspNetPager>
<div class="div_count">
<asp:Label ID="lab_num" runat="server" Text=""></asp:Label>
</div>
<div class="div_both"></div>
<input type="hidden" id="text_delid" runat="server" />
<input type="hidden" id="text_page" value='<%=page() %>' />
<input type="hidden" id="text_pagecount" runat="server" />
<br />
生成靜態(tài)列表:
<input type="button" class="suborange Static" value="生成當前頁列表" data-href="newslist.aspx" data-act="1" data-url="news/default.aspx?page=" data-path="news/news_" /> <input type="button" class="subcyan Static" value="生成全部列表" data-href="newslist.aspx" data-act="2" data-url="news/default.aspx?page=" data-path="news/news_" /> <a href="../news/news_1.html" class="subgreen" target="_blank">查看新聞列表</a>
生成靜態(tài)頁:
<input type="button" class="submit Static" value="生成當前選中項" data-href="newslist.aspx" data-act="0" data-url="newsel/default.aspx?id=" data-path="newsel/newsel_" data-table="HotelInfo"/> <%-- <input type="button" class="subgreen Static" value="生成全部項" data-href="newslist.aspx" data-act="3" data-table="HotelInfo" data-url="newsel/default.aspx?id=" data-path="newsel/newsel_" />--%> <div id="divdialog"></div> <div id="loading"><div id="message"></div></div> </div>
cs代碼
我用的是存儲過程加載數(shù)據(jù),存儲過程具體使用方法請看另一篇文章http://www.dbjr.com.cn/article/42950.htm
using System;
using System.Web;
using System.Data.SqlClient;
using System.Data;
using System.Collections.Generic;
using System.Web.Script.Serialization;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Text;
using System.IO;
using System.Net;
namespace Web.admin
{
public partial class newslist : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
HttpCookie hcname = Request.Cookies["backname"];
if (hcname != null)
{
string s = Request.Url.ToString().Substring(Request.Url.ToString().LastIndexOf('/') + 1);
if (s.IndexOf("?") > -1) s = s.Substring(0, s.IndexOf("?"));
HttpCookie hc1 = new HttpCookie("backUrl", s);
hc1.Expires = DateTime.Now.AddMinutes(120);
Response.Cookies.Add(hc1);
string title = this.Page.Title.ToString();
HttpCookie hc2 = new HttpCookie("backTitle", Server.UrlEncode(title));
hc2.Expires = DateTime.Now.AddMinutes(120);
Response.Cookies.Add(hc2);
Bind();
}
else
{
this.Page.RegisterStartupScript("aaa", "<script>tuichu();</script>");
}
}
}
public void Bind()
{
SqlParameter[] parms = new SqlParameter[] {
new SqlParameter("@FEILDS",SqlDbType.NVarChar,1000),
new SqlParameter("@PAGE_INDEX",SqlDbType.Int,10),
new SqlParameter("@PAGE_SIZE",SqlDbType.Int,10),
new SqlParameter("@ORDERTYPE",SqlDbType.Int,2),
new SqlParameter("@ANDWHERE",SqlDbType.VarChar,1000),
new SqlParameter("@ORDERFEILD",SqlDbType.VarChar,100),
new SqlParameter("@TABLENAME",SqlDbType.VarChar,100)
};
parms[0].Value = "id,Name,Dir,Static,Url";//獲取所有的字段
parms[1].Value = page();//當前頁面索引
parms[2].Value = 10;//頁面大小
parms[3].Value = paixu();//升序排列
parms[4].Value = "(Name like '%" + keyword() + "%')";//條件語句
parms[5].Value = paixuziduan();//排序字段
parms[6].Value = "HotelInfo";//表名
DataTable dt = new DataTable();
using (SqlDataReader sdr = Yoodor.DAL.SqlHelper.ExecuteReader(CommandType.StoredProcedure, "PAGINATION", parms))
{
dt.Load(sdr);
R1.DataSource = dt;
R1.DataBind();
}
if (keyword() != null && keyword() != "none")
{
text_word.Value = keyword();
}
}
public int page()
{
int PageNumber = Request.QueryString["page"] != null ? Convert.ToInt32(Request.QueryString["page"].ToString()) : 1;
return PageNumber;
}
public string keyword()
{
string key = Request.QueryString["keyword"] != null ? Request.QueryString["keyword"].ToString() : "";
return key;
}
public string type()
{
string key = Request.QueryString["type"] != null ? Request.QueryString["type"].ToString() : "";
return key;
}
public string paixuziduan()
{
string str = "";
string s = Request.QueryString["field"];
if (s != null)
{
str = s;
}
else
{
str = "Id";
}
return str;
}
public int paixu()
{
string asc = Request.QueryString["asc"];
if (asc != null)
{
if (asc == "desc")
{
return 0;
}
else
{
return 1;
}
}
else
{
return 1;
}
}
//分頁事件
protected void AspNetPager1_PageChanged1(object sender, EventArgs e)
{
Bind();
}
protected void AspNetPager1_Load(object sender, EventArgs e)
{
string count = new BLL.f_article().SelectAllNum(keyword(), type());
AspNetPager1.RecordCount = Convert.ToInt32(count);
lab_num.Text = "共<span class='count'>" + count + "</span>條記錄。";
text_pagecount.Value = AspNetPager1.PageCount.ToString();
}
protected void R1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
CheckBox ch = (CheckBox)e.Item.FindControl("chkItem");
HtmlInputHidden tid = (HtmlInputHidden)e.Item.FindControl("text_id");
ch.Attributes.Add("onclick", "checks(" + tid.Value + ")");
Label state = (Label)e.Item.FindControl("lab_state");
if (state.Text == "0")
{
state.Text = "未靜態(tài)";
state.ForeColor = System.Drawing.Color.Red;
}
else {
state.Text = "已靜態(tài)";
}
}
}
//搜索
protected void Button1_Click(object sender, EventArgs e)
{
string keyword = text_word.Value.Trim();
Response.Redirect("list.aspx?keyword=" + keyword, false);
}
}
}
glob.js代碼
$(function () {
//創(chuàng)建彈出提示框
var divdialog = '<div id="divdialog"></div><div id="divsuredialog"></div>';
$(document.body).append(divdialog);
//表格行,鼠標放上去變色
$(".tr:odd").css("background", "#FFFCEA");
$(".tr:odd").each(function () {
$(this).hover(function () {
$(this).css("background-color", "#F5F8F9");
}, function () {
$(this).css("background-color", "#FFFCEA");
});
});
$(".tr:even").each(function () {
$(this).hover(function () {
$(this).css("background-color", "#F5F8F9");
}, function () {
$(this).css("background-color", "#fff");
});
});
//生成靜態(tài)頁
$(".Static").click(function () {
var url = $(this).attr("data-url");
var path = $(this).attr("data-path");
var href = $(this).attr("data-href");
var tablename = $(this).attr("data-table");
var actid = $(this).attr("data-act"); //0 表示生成當前選中項
var ids = $("#text_delid").val();
var page = $("#text_page").val();
var pagecount = $("#text_pagecount").val();
if (actid == 0) {
if (ids == "") {
dialog(1, '請先選擇!');
return false;
}
}
$.ajax({
url: "ashx/Static.ashx",
data: { "geturl": url, "getpath": path, "act": actid, "id": ids, "pages": page, "pagecouts": pagecount, "table": tablename },
type: "post",
beforeSend: function (data) {
doProgress(href, "生成成功!");
},
success: function (data) {
doProgress(href, data);
}
})
})
});
var progress_id = "loading";
function SetProgress(progress) {
if (progress) {
$("#" + progress_id + " > div").css({ "width": String(progress) + "%", "background": "#F4A830" }); //控制#loading div寬度
$("#" + progress_id + " > div").html(String(progress) + "%"); //顯示百分比
}
}
var i = 0;
function doProgress(href, msg) {
$("#loading").show();
if (i > 100) {
$("#message").html(msg).fadeIn("fast");//加載完畢提示
// window.location.href = href;
$("#loading").hide();
dialog(0, msg, href, 1000);
return;
}
if (i <= 100) {
setTimeout("doProgress('"+href+"','"+msg+"')", 1);
SetProgress(i);
i++;
}
}
function checks(id) {
var spid = "";
spid += id + ",";
var aa = $("#text_delid").val();
if ($("#labe_" + id + " input").attr("checked")) {
// $("#tr_" + id).css("background","#000");
$("#text_delid").val(aa + spid);
return false;
}
else {
//$("#tr_" + id).removeClass("hover1");
if (aa.indexOf(id) > -1) {
var b = aa.replace(id + ",", "");
$("#text_delid").val(b);
}
}
}
//刪除確認框
function dels(tablename,url) {
var id = $("#text_delid").val();
if (id == "") {
dialog(1, '請先選擇!');
return false;}
else {$("#divdialog").hide();
suredialog(id, "您確定要刪除嗎?刪除之后信息將不再顯示!",tablename,url);
return false;}}
function newdels() {
var tablename = $("#text_table").val();
var url = "type.aspx?table=" + tablename;
var id = $("#text_delid").val();
if (id == "") {
dialog(1, '請先選擇!');
return false;
}
else {
$("#divdialog").hide();
suredialog(id, "您確定要刪除嗎?刪除之后信息將不再顯示!", tablename, url);
return false;
}
}
//全選反選
function QuanXuan() {
$(':checkbox').each(function () {
$(this).attr("checked", true);
var spid = "";
var id = $(this).parent('span').attr("title");
spid += id + ",";
var aa = $("#text_delid").val();
$("#text_delid").val(aa + spid);
})}
function FanXuan() {
$(':checkbox').each(function () {
$(this).attr("checked", false);
$("#text_delid").val('');
})}
//刪除信息
function deleteinfor(ids, table,url) {
$("#divsuredialog").hide();
var page = $('#text_page').val();
$.post("ashx/delete.ashx?id=" + ids + "&table=" + table + "", null, function (data) {
if (data == 1) {
if (url.indexOf("type.aspx") > -1) {
dialog(0, '刪除成功', url, 1000);
}
else {
dialog(0, '刪除成功', url + '?page=' + page + '', 1000);
}
}
else { dialog(2, '刪除失敗', url + '?page=' + page + '', 1000);}
});
}
var dlog;
var pp = false;
KindEditor.ready(function (K) {
K('.a_1').click(function () {
$("#divsuredialog").hide();
$("#divdialog").hide();
var id = $(this).attr("data-id");
var value1 = $(this).attr("data-value");
var value = "";
var html = "";
if ($(this).html().indexOf('通過')>-1) {
value = value1;
html="修改審核狀態(tài)(點擊確定即可)"
}
else {
value = $(this).html();
html = "修改信息";
}
var field = $(this).attr("data-field");
var table = $(this).attr("data-table");
var url = $(this).attr("data-url");
dlog = K.dialog({
width: 260,
title: html,
body: "<div style='margin:10px; height:130px'><table width='100%' border='0'><tr><td style='text-align:center; height:50px; '><input type='text' id='text_updatevalue' value=" + value + " class='text lh20' /> </td></tr><tr><td style='text-align:center;height:50px;'><input type='button' onclick=upateinfor('" + id + "','" + field + "','" + table + "','" + url + "') class='subgreen' value='確定' /> <input type='button' onclick='closedlog()' class='suborange' value='取消' /></td></tr></table></div>",
closeBtn: { name: '關(guān)閉', click: function (e) { dlog.remove(); } }
});
});
K('#newsadd').click(function () {
$("#divsuredialog").hide();
$("#divdialog").hide();
dlog = K.dialog({
width: 260,
title: '新增分類',
body: "<div style='margin:10px; height:130px'><table width='100%' border='0'><tr><td style='text-align:center; height:50px; '><input type='text' id='text_typevalue' class='input-text lh20' /> </td></tr><tr><td style='text-align:center;height:50px;'><input type='button' onclick=inserttype() class='subgreen' value='確定' /> <input type='button' onclick='closedlog()' class='suborange' value='取消' /></td></tr></table></div>",
closeBtn: { name: '關(guān)閉', click: function (e) { dlog.remove(); } }
});
});
});
//修改信息
function upateinfor(ids, fieldname, tablename, url) {
var page = $('#text_page').val();
var value = $("#text_updatevalue").val();
$.post("ashx/update.ashx?id=" + ids + "&table=" + tablename + "&field=" + fieldname + "&value=" + escape(value) + "", null, function (data) {
if (data == 1) {
closedlog();
if (url.indexOf("type.aspx") > -1) {
dialog(0, '修改成功', url, 1000);
}
else {
dialog(0, '修改成功', url + '?page=' + page + '', 1000);
}
}
else { closedlog(); dialog(2, '修改失敗', url+'?page=' + page + '', 1000); }
});
}
//修改信息 帶值
function upateinforss(ids, value, fieldname, tablename, url) {
var page = $('#text_page').val();
$.post("ashx/update.ashx?id=" + ids + "&table=" + tablename + "&field=" + fieldname + "&value=" + escape(value) + "", null, function (data) {
if (data == 1) {
$("#div_tip").hide();
if (url.indexOf("type.aspx") > -1)
{
dialog(0, '修改成功', url , 1000);
}
else {
dialog(0, '修改成功', url + '?page=' + page + '', 1000);
}
}
else { closedlog(); dialog(2, '修改失敗', url + '?page=' + page + '', 1000); }
});
}
//增加分類
function inserttype(){
var value = $("#text_typevalue").val();
var table = $("#text_table").val();
var url = "type.aspx?table="+table;
var page = $('#text_page').val();
$.post("ashx/insert.ashx?table="+table+"&value=" + escape(value) + "", null, function (data) {
if (data == 1) {
closedlog();
dialog(0, '添加成功', url, 1000);
}
else { closedlog(); dialog(2, '添加失敗', url , 1000); }
});
}
function closedlog() { dlog.remove(); }
//彈出刪除 確認對話框
function suredialog(id, msg, tablename,url) {
var html = "<div class='sure_title'>系統(tǒng)提示<a href='javascript:;' onclick='closesurediv()'></a></div><div class='sure_content'></div><div class='sure_btn'><input type='hidden' id='text_deleId' /><input type='button' onclick=deleteinfor('" + id + "','" + tablename + "','"+url+"') value='確定' class='subgreen' /> <input type='button' onclick='closesurediv()' value='取消' class='suborange' /></div>";
$("#divsuredialog").show();
$("#divsuredialog").html(html);
$(".sure_content").html(msg);
}
以上內(nèi)容是asp.net新聞列表生成靜態(tài)頁之批量和單頁生成的全部內(nèi)容,還有生成文章靜態(tài)頁,在這里我要提醒大家生成文章的靜態(tài)頁的方法給這個是不一樣的,請繼續(xù)關(guān)注本網(wǎng)站,我會持續(xù)更新的。謝謝大家閱讀我的作品。
- C#.NET中如何批量插入大量數(shù)據(jù)到數(shù)據(jù)庫中
- Asp.Net使用Bulk實現(xiàn)批量插入數(shù)據(jù)
- C#/.Net 中快速批量給SQLite數(shù)據(jù)庫插入測試數(shù)據(jù)
- 在ASP.NET 2.0中操作數(shù)據(jù)之六十二:GridView批量更新數(shù)據(jù)
- 在ASP.NET 2.0中操作數(shù)據(jù)之六十四:GridView批量添加數(shù)據(jù)
- 在ASP.NET 2.0中操作數(shù)據(jù)之三十七:DataList批量更新
- ajax readyState的五種狀態(tài)詳解
- AJAX(XMLHttpRequest.status)狀態(tài)碼
- javascript學(xué)習(xí)筆記(七)Ajax和Http狀態(tài)碼
- asp.net線程批量導(dǎo)入數(shù)據(jù)時通過ajax獲取執(zhí)行狀態(tài)
相關(guān)文章
基于C#實現(xiàn)Windows服務(wù)的方法詳解
在實際應(yīng)用過程中,有時候我們希望開發(fā)的程序,不需要界面,直接開機就可以長時間運行,這時候,我們可以考慮做成一個Windows服務(wù)。這篇文章跟大家介紹一下,如何基于C#實現(xiàn)Windows服務(wù)的創(chuàng)建、安裝、啟動、停止和卸載,需要的可以參考一下2022-09-09
C#零基礎(chǔ)開發(fā)中最重要的概念總結(jié)
這篇文章主要為大家詳細介紹了C#零基礎(chǔ)開發(fā)中最重要的一些概念,文中的示例代碼講解詳細,對我們學(xué)習(xí)C#有一定的幫助,需要的可以參考一下2023-02-02
C#如何通過匿名類直接使用訪問JSON數(shù)據(jù)詳解
這篇文章主要給大家介紹了關(guān)于C#如何通過匿名類直接使用訪問JSON數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起看看吧。2018-02-02
C#編程實現(xiàn)連接SQL SERVER數(shù)據(jù)庫實例詳解
這篇文章主要介紹了C#編程實現(xiàn)連接SQL SERVER數(shù)據(jù)庫的方法,以實例形式較為詳細的分析了C#連接SQL SERVER數(shù)據(jù)庫的相關(guān)步驟與具體實現(xiàn)技巧,需要的朋友可以參考下2015-11-11
C# WinForm制作一個批量轉(zhuǎn)化文件格式的小工具
在生活中有時候會遇到批量轉(zhuǎn)換格式的需求,一個個點太麻煩了,一個能夠?qū)崿F(xiàn)批量文件格式轉(zhuǎn)換的工具非常有用,所以本文小編使用C# WinForm制作一個批量轉(zhuǎn)化文件格式的小工具,文中有具體實現(xiàn)代碼,需要的朋友可以參考下2023-11-11

