一、在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测试