.net 中实现数据表记录数据修改的代码功能 因为用直接拼接字符的方法给 SQL 语句传入字符存在极大的安全隐患, 故以下代 码采用给 SQL 语句传参数变量的方法, 以下记录的是如何对数据库中的表记录数 据进行修改的代码:其中将用到前面介绍的实体类生成器来创建数据表对象 (category),而对象中的属性则对应表中的字段。 修改的代码与插入的代码基本一样,主要是 SQL 语句不同,如果修改成功,会返 回一个大于 0 的数值, 否则修改失败, 如果修改成功则 RETURN TRUE 否则 FALSE, 还是先看一下最终效果吧!然后再一步步的回顾操作步骤: 1——categoryDAO.cs 类的源码:(加黑的部分是实现修改功能的代码段) /* *创建人:无声岁月 * 创建时间:2009-09-03 23:20 * 新闻类别表操作类 * 版权所有:无声岁月 */ using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; namespace DAL { ///
/// 新闻类别表操作类 /// public class CategoryDAO { private SQLHelper sqlhelper = null; public CategoryDAO() { sqlhelper = new SQLHelper(); } //取出当前所有新闻类 public DataTable SelectAll() { DataTable dt = new DataTable();//建立 DataTable 类的新实例 string sql = "select * from category"; dt = sqlhelper.ExecuteQuery(sql);//调用方法来执行传入的 SQL 语句并把结果集赋值给 dt return dt; }
//增加类别 public bool Insert(string caName) { bool flag = false; string sql = "insert into category(name) values(@caName)"; SqlParameter[] paras = new SqlParameter[] { new SqlParameter("@caName", caName) }; int res = sqlhelper.ExecuteNonQuery(sql, paras); if (res > 0) { flag = true; } return flag; } //修改类别 //修改类别 public bool Update(category ca) { bool flag = false; string sql = "update category set [name]=@caName where id=@id"; id=@id"; SqlParameter[] paras = new SqlParameter[]{ new SqlParameter("@id",ca.Id), new SqlParameter("@caName",ca.Name) }; int res = sqlhelper.ExecuteNonQuery(
sql, paras); if (res > 0) { flag = true; } return flag; } //删除类别(连同其下的新闻及新闻评论一起删除) //判断类别名称是否存在 public bool IsExists(string caName) { bool flag = false; string sql = "select * from category where [name]='" + caName + "'"; DataTable rd = sqlhelper.ExecuteQuery(sql); if (rd.Rows.Count > 0) { flag = true;
} return flag; } } } 2------界面:
3)运行效果: 下图是想把 ID 为 4 的“校园新闻”改为“经济新闻”
当点击修改按钮后见到如下:
下面一步一步来实现以上功能:
方法一:[1]categoryDAO.cs 中的一段修改源码: :[1] //修改类别 public bool Update(string id,string caName) { bool flag = false; string sql = "update category set [name]=@caName where id=@id"; id=@id"; SqlParameter[]{ SqlParameter[] paras = new SqlParameter[]{
new SqlParameter("@id",id), new SqlParameter("@caName",caName) }; int res = sqlhelper.ExecuteNonQuery(sql, paras); if (res > 0) { flag = true; } return flag; } 小小分析: (1) public bool Update(string id,string caName)从界面上传入来的 ID(如 4)和 caName (如经济新闻) (2)SqlParameter[] paras = new SqlParameter[]{ new SqlParameter("@id",id), new SqlParameter("@caName",caName) };将 id 和 caName 赋值给参数变量@id 和@caName (3) int res = sqlhelper.ExecuteNonQuery(sql, paras);将@id 和@caName 变量值赋给 SQL 语句, 执行不返回结果集的 SQL 语句, 这样 res 将得到一个整数, 如果大于 0 则 flag = true;否则 flag = false,这个信号终反馈给 Update() [2]布局一下界面 布局一下界面: [2]布局一下界面:
双击以