过滤非法字符串(但是查询的时候,假如是英文名字,是很容易有单引号的 例如 Joey’s name,这个时候我们就需要把单引号,换成2个单引号
/// <summary>过滤sql非法字符串 /// /// </summary> /// <param name="value"></param> /// <returns></returns> public static string GetSafeSQL(string value) { if (string.IsNullOrEmpty(value)) return string.Empty; value = Regex.Replace(value, @";", string.Empty); //value = Regex.Replace(value, @"'", string.Empty); value = Regex.Replace(value, @"'", "''"); value = Regex.Replace(value, @"&", string.Empty); value = Regex.Replace(value, @"%20", string.Empty); value = Regex.Replace(value, @"--", string.Empty); value = Regex.Replace(value, @"==", string.Empty); value = Regex.Replace(value, @"<", string.Empty); value = Regex.Replace(value, @">", string.Empty); value = Regex.Replace(value, @"%", string.Empty); return value; }
接下来我们制作 新闻表和前台的新闻制作。
shop_news:id,title,body,visitnum,createdate,type
新闻id,标题,内容,浏览量,创建时间,新闻类型(商品专题或者是新闻中心)
要学会代码的复用,ctrl + c , Ctrl + v
/********************************************************* * 开发人员:Joey QQ:1727050508 博客: http://1727050508.cnblogs.com * 创建时间:2012-3-5 10:39:42 * 描述说明:news_list.aspx 新闻列表页 * * 更改历史: * * *******************************************************/ using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace Niunan.Shop.Web.admin { public partial class news_list : System.Web.UI.Page { Niunan.Shop.DAL.NewsDAO newsdao = new DAL.NewsDAO(); protected void Page_Load(object sender, EventArgs e) { BindRep(); } protected void anp_PageChanged(object sender, EventArgs e) { BindRep(); } protected void lbtnDel_Click(object sender, EventArgs e) { string id = (sender as LinkButton).CommandArgument; newsdao.Delete(int.Parse(id)); BindRep(); } private void BindRep() { int pagesize = anp.PageSize; int pageindex = anp.CurrentPageIndex; anp.RecordCount = newsdao.ClacCount(GetCond()); repList.DataSource = newsdao.GetList("*", "id", "desc", pagesize, pageindex, GetCond()); repList.DataBind(); } private string GetCond() { string cond = "1=1"; string type = Request.QueryString["type"]; if (!string.IsNullOrEmpty(type) && type == "spzt") { cond += " and type='商品专题'"; litH1.Text = "商品专题"; } else { cond += " and type='新闻中心'"; litH1.Text = "新闻中心"; } string key = txtKey.Text.Trim(); key = Niunan.Shop.Utility.Tool.GetSafeSQL(key); if (key.Length != 0) { cond+= " and title like '%" + key + "%' "; } return cond; } protected void btnSearch_Click(object sender, EventArgs e) { BindRep(); } } }
下面是新闻添加和修改页面的代码
/********************************************************* * 开发人员:Joey QQ:1727050508 博客: http://1727050508.cnblogs.com * 创建时间:2012-3-5 15:30:56 * 描述说明:news_add.aspx 新闻添加和修改页面 * * 更改历史: * * *******************************************************/ using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace Niunan.Shop.Web.admin { public partial class news_add : System.Web.UI.Page { Niunan.Shop.DAL.NewsDAO newsdao = new DAL.NewsDAO(); //Page_Load 是页面进入的时候执行的函数,不论是第一次进入,还是我们点了按钮回发进入,都会执行的 protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { string id = Request.QueryString["id"]; int x; if (!string.IsNullOrEmpty(id) && int.TryParse(id, out x)) { Niunan.Shop.Model.News newsmodel = newsdao.GetModel(x); if (newsmodel != null) { txtTitle.Text = newsmodel.title; txtBody.Text = newsmodel.body; litH1.Text = "修改"; btnAdd.Text = "修改"; } } } } protected void btnAdd_Click(object sender, EventArgs e) { string title = txtTitle.Text.Trim(); string body = txtBody.Text.Trim(); string type = Request.QueryString["type"]; if (!string.IsNullOrEmpty(type) && type == "spzt") { type = "商品专题"; } else { type = "新闻中心"; } if (title.Length == 0 || body.Length == 0) { litRes.Text = "<span style='color:blue'>请填写完整的信息</span>"; return; } //如果有传入ID,那么就是修改 string id = Request.QueryString["id"]; int x; if (!string.IsNullOrEmpty(id) && int.TryParse(id, out x)) { //这里是重复判断,到底根据这个ID,能不能获得这个实体 Niunan.Shop.Model.News newsmodel = newsdao.GetModel(x); if (newsmodel != null) { newsmodel.title = title; newsmodel.body = body; newsdao.Update(newsmodel); litRes.Text = "<span style='color:red'>修改成功</span>"; return; } } //否则是添加 int res = newsdao.Add(new Niunan.Shop.Model.News() { title = title, body = body, createdate = DateTime.Now, type = type, visitnum = 0 }); if (res > 0) { txtTitle.Text = ""; txtBody.Text = ""; litRes.Text = "<span style='color:blue'>添加成功</span>"; } else { litRes.Text = "<span style='color:red'>添加失败,请联系管理员</span>"; } } } }