asp.net简单新闻发布系统的增删改查

一、在DAL项目中添加类:categoryDAO.CS
1)添加新建项

2)输入类名(categoryDAO.cs),选择“类”,点击“添加”
3)categoryDAO.cs源码如下:(感兴趣的话复制下来慢慢研究)

/*创建人:无声岁月,创建时间:2009.09.04,9:50,类说明:增加新闻类别,版权所有:无声岁月*/
using System;
using System.Collections.Generic;
using System.Text;
namespace DAL
{
    /// <summary>
    /// 新闻类别表操作类
    /// </summary>
   public class categoryDAO
    {
        private SQLHelper salhelper = null;
        public categoryDAO()
        {
            salhelper = new SQLHelper();//构造函数并初始化成SQLHelper类实例,目的是想调用SQLHelper中的ExecuteNonQuery(sql)来执行插入记录的SQL语句
        }

      
       /// <summary>
       /// 增加新闻类别方法
       /// </summary>
       /// <param name="caname">新闻类别名</param>
       /// <returns>返回受影响的记录数</returns>
        public bool Insert(String caName)
        {
            bool flag = false;
            string sql = "insert into category(name) values ('"+caName+"')";
            int res = salhelper.ExecuteNonQuery(sql);//调用SQLHelper中的ExecuteNonQuery(sql)来执行插入记录的SQL语句,返回受影响的记录数
            if (res > 0)
            {
                flag = true;

            }
            else
            {
                flag = false;
            }
            return flag;


        }
    }
}
小析:这个类的作用是:当我们从文本框输入“新闻类别名”提交后,就会执行插入该记录操作。

ExecuteNonQuery(sql)方法是在SQLHelper.cs中,SQLHelper.cs源码如下:
/*制作人:无声岁月,制作时间:2009-09-3,版权所有:无声岁月,说明:数据库助手类*/
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace DAL
{
    public class SQLHelper
    {
        /// <summary>
        /// 此方法执行传入增、删、改的SQL语句
        /// </summary>
        /// <param name="sql">将要执行增、删、改的SQL语句</param>
        /// <returns>更新的记录数</returns>
        public int ExecuteNonQuery(string sql)
        {
            string connstr = @"server=wei/mysqlexpress;database=newsystem;uid=sa;pwd=123456";
            SqlConnection conn = new SqlConnection(connstr);//创建库连接对象
            conn.Open();//打开连接的数据库
            SqlCommand cmd = new SqlCommand(sql, conn);//创建可以执行SQL语句的command实例
            int res = cmd.ExecuteNonQuery();//执行无返回行操作,返回受影响的记录数
            conn.Close();//关闭数据库连接,以释放资源
            return res;//把受影响的记录数返回给ExecuteNonQuery
        }
    }
}
4)在设计页面拖入一个文本框和一个按钮:

5)双击按钮事件调用代码:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using DAL;
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        string caName = TextBox1.Text;
        if (new categoryDAO().Insert(caName))
        {
            Response.Write("新闻类别名:("+ caName +")" +"已成功添加到新闻类别表category中!");
        }
        else
        {
            Response.Write("新闻类别名:("+ caName +")" +"未能成功添加到新闻类别表category中!");
        }

    }
}
6)重新生成一下,按F5或CTRL+F5运行一下,为了见效果,我们查看运行前数据表的记录情况:

运行的初始界面:(如果调试出错可将//后的注释删了再调试)

现在我往文本框中输入“花边新闻”,然后点击提交:

再看看我们的数据表是不是真的新添加了一条新闻类别记录?:

有了,添加任务完成,这个例子的难点就是对构造函数的理解,构造函数是在当我们对类创建实例时才自动初始化的。下来看看如何编码实现根据“新闻类别名”对表中进行查询:

SQLHelper.cs源码如下:(新建了Excutequery()方法来执行传入的SQL查询语句)

/*制作人:无声岁月,制作时间:2009-09-3,版权所有:无声岁月,说明:数据库助手类*/
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace DAL
{
    public class SQLHelper
    {
        /// <summary>
        /// 此方法执行传入增、删、改的SQL语句
        /// </summary>
        /// <param name="sql">将要执行增、删、改的SQL语句</param>
        /// <returns>更新的记录数</returns>
        public int ExecuteNonQuery(string sql)
        {
            string connstr = @"server=wei/mysqlexpress;database=newsystem;uid=sa;pwd=123456";
            SqlConnection conn = new SqlConnection(connstr);
            conn.Open();
            SqlCommand cmd = new SqlCommand(sql, conn);
            int res = cmd.ExecuteNonQuery();
            conn.Close();
            return res;
        }
        /// <summary>
        /// 该方法执行SQL查询语句
        /// </summary>
        /// <param name="sql">查询的SQL语句</param>
        /// <returns>存放在内存表中的查询结果集(bool)</returns>
        public DataTable ExecuteQuery(string sql)
        {
            DataTable dt = new DataTable();//创建一个表实例DT
            string connstr = @"server=wei/mysqlexpress;database=newsystem;uid=sa;pwd=123456";
            SqlConnection conn = new SqlConnection(connstr);
            conn.Open();
            SqlCommand cmd = new SqlCommand(sql, conn);
            SqlDataReader rd = cmd.ExecuteReader();
            dt.Load(rd);
            rd.Close();
            conn.Close();
            return dt;
        }
    }

}

categoryDAO.cs源码如下:(新建了一个方法:IsExists()来接收从文本框输入的新闻类别名并查询)

/*创建人:无声岁月,创建时间:2009.09.04,9:50,类说明:增加新闻类别,版权所有:无声岁月*/
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
namespace DAL
{
    /// <summary>
    /// 新闻类别表操作类
    /// </summary>
    public class categoryDAO
    {
        private SQLHelper salhelper = null;
        public categoryDAO()
        {
            salhelper = new SQLHelper();
        }


        /// <summary>
        /// 增加新闻类别方法
        /// </summary>
        /// <param name="caname">新闻类别名</param>
        /// <returns>返回受影响的记录数</returns>
        public bool Insert(String caName)
        {
            bool flag = false;
            string sql = "insert into category(name) values ('" + caName + "')";
            int res = salhelper.ExecuteNonQuery(sql);
            if (res > 0)
            {
                flag = true;

            }
            else
            {
                flag = false;
            }
            return flag;
        }
        /// <summary>
        /// 判断新闻类别名是否存在
        /// </summary>
        /// <param name="caName">传入的新闻类别名</param>
        /// <returns>如果存在返回真,否则返回假</returns>
        public bool IsExists(string caName)
        {
            bool flag = false;
            string sql = "select * from category where [name]='" + caName + "'";
            DataTable dt = salhelper.ExecuteQuery(sql);
            if (dt.Rows.Count>0)
            {
                flag = true;               
            }
            else
            {
                flag = false;
            }
            return flag;

        }
    }
}
按CTRL+F5测试

 

没有更多推荐了,返回首页