ERP PowerDesigner工具使用(二)
工具简介:
启动界面:
网站:
使用步骤:
1.创建物理数据模型:
里面的两个模型:
支持的数据库:
快捷键工具栏:
创建表:
双击进来的效果:
先建主建 在建外键:
建标识列:
生成sql语句:
生成后的语句:
与数据库进行连接:
连接成功的标志:
把生成的语句同步到数据库:
数据体实体层:
数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问。简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。
Ado.Net核心对象:
1.Connection 连接数据库
2.Command 执行T—SQL语句
3.DataAdapter 用户填充DataSet,断开模式
4.DataReader: 读取数据库,一种只读模式,只向前
5.DataSet 数据集(电脑的内存)
6.DataAdapter 用户填充DataSet,断开模式
图示:
三层模式:
帮助类:DataBaseHelper: (using System.Data.SqlClient; using System.Configuration;)
/// <summary> /// 定义静态的连接字符串(加上static 就是私有属性 没有就是成员属性) /// </summary> private static string ConnString { get { return System.Configuration.ConfigurationManager.ConnectionStrings["ErpConnString"].ConnectionString; } } /// <summary> /// 用于执行一个insert/update/delete语句或则相应的存储过程 /// </summary> /// <param name="cmdText">insert/update/delete SQL语句或则 存储过程</param> /// <param name="type">指定命令的类型</param> /// <param name="pars">参数集合</param> /// <returns>int</returns> private static int ExcuteSqlReturnInt(string cmdText, CommandType type, params SqlParameter[] pars) { //实例化连接对象 SqlConnection conn = new SqlConnection(); try { //打开连接对象 if (conn.State == ConnectionState.Closed || conn.State == ConnectionState.Broken) { conn.Open(); } //实例化命令对象 SqlCommand sqlcommand = new SqlCommand(cmdText, conn); //对命令对象参数集合赋值 if (pars != null && pars.Length > 0) { foreach (SqlParameter p in pars) { sqlcommand.Parameters.Add(p); } } //给命令对象指定类型 sqlcommand.CommandType = type; //通过ExecuteNonQuery执行数据库命令,并返回数据库受影响的行数。 int count = sqlcommand.ExecuteNonQuery(); return count; } catch (Exception ex) { return 0; } finally { conn.Close(); } }
/// <summary> /// 执行一个Select语句或则相关的存储过程 并返回DataSet /// </summary> /// <param name="cmdText">Select语句或则相关的存储过程</param> /// <param name="type">命令对象类型</param> /// <param name="pars">Select语句或则相关的存储过程 所需的参数</param> /// <returns>DataSet</returns> private static DataSet SelectSQLReturnDataSet(string cmdText, CommandType type, params SqlParameter[] pars) { SqlConnection conn = new SqlConnection(ConnString); SqlDataAdapter sqldataadapter = new SqlDataAdapter(cmdText, conn); if (pars != null && pars.Length > 0) { foreach (SqlParameter p in pars) { sqldataadapter.SelectCommand.Parameters.Add(p); } } sqldataadapter.SelectCommand.CommandType = type; DataSet dt = new DataSet(); sqldataadapter.Fill(dt); return dt; }
/// <summary> /// 执行一个Select语句或则相关的存储过程 并返回DataSet /// </summary> /// <param name="cmdText">Select语句或则相关的存储过程</param> /// <param name="type">命令对象类型</param> /// <param name="pars">Select语句或则相关的存储过程 所需的参数</param> /// <returns>DataSet</returns> private static DataSet SelectSQLReturnDataSet(string cmdText, CommandType type) { SqlConnection conn = new SqlConnection(ConnString); SqlDataAdapter sqldataadapter = new SqlDataAdapter(cmdText, conn); sqldataadapter.SelectCommand.CommandType = type; DataSet dt = new DataSet(); sqldataadapter.Fill(dt); return dt; }
/// <summary> /// 执行一个Select语句或则相关的存储过程 并返回DataTable /// </summary> /// <param name="cmdText">Select语句或则相关的存储过程</param> /// <param name="type">命令对象类型</param> /// <param name="pars">Select语句或则相关的存储过程 所需的参数</param> /// <returns>DataTable</returns> private static DataTable SelectSQLReturnTable(string cmdText, CommandType type, SqlParameter[] pars) { SqlConnection conn = new SqlConnection(ConnString); SqlDataAdapter sqldataadatapter = new SqlDataAdapter(cmdText, conn); if (pars != null && pars.Length > 0) { foreach (SqlParameter p in pars) { sqldataadatapter.SelectCommand.Parameters.Add(p); } } sqldataadatapter.SelectCommand.CommandType = type; DataTable dt = new DataTable(); sqldataadatapter.Fill(dt); return dt; }
/// <summary> /// 执行一个Select语句或则相关的存储过程 并返回DataTable /// </summary> /// <param name="cmdText">Select语句或则相关的存储过程</param> /// <param name="type">命令对象类型</param> /// <param name="pars">Select语句或则相关的存储过程 所需的参数</param> /// <returns>DataTable</returns> private static DataTable SelectSQLReturnTable(string cmdText, CommandType type) { SqlConnection conn = new SqlConnection(ConnString); SqlDataAdapter sqldataadatapter = new SqlDataAdapter(cmdText, conn); sqldataadatapter.SelectCommand.CommandType = type; DataTable dt = new DataTable(); sqldataadatapter.Fill(dt); return dt; }
/// <summary> /// 执行一个Select语句或则相关的存储过程 并返回查询对象 /// </summary> /// <param name="cmdText">Select语句或则相关的存储过程</param> /// <param name="type">命令对象类型</param> /// <param name="pars">Select语句或则相关的存储过程 所需的参数</param> /// <returns>object</returns> public static object SelectSQLReturnObject(string cmdText, CommandType type, SqlParameter[] pars) { SqlConnection conn = new SqlConnection(ConnString); try { SqlCommand cmd = new SqlCommand(cmdText, conn); if (pars != null && pars.Length > 0) { foreach (SqlParameter p in pars) {
//必须进行非空判断 if (p.Value != null && p.Value != "") { cmd.Parameters.Add(p); } } } if (conn.State == ConnectionState.Closed || conn.State == ConnectionState.Broken) { conn.Open(); } cmd.CommandType = type; object obj = cmd.ExecuteScalar(); return obj; } catch (Exception ex) { return null; } finally { conn.Close(); } }
/// <summary> /// 执行一个Select语句或则相关的存储过程 并返回一个数据阅读器对象 /// </summary> /// <param name="cmdText">Select语句或则相关的存储过程</param> /// <param name="type">指定命令对象的类型</param> /// <param name="pars">参数结合</param> /// <returns>SqlDataReader</returns> private static SqlDataReader SelectSQLReturnReader(string cmdText, CommandType type, SqlParameter[] pars) { SqlConnection conn = new SqlConnection(ConnString); try { SqlCommand cmd = new SqlCommand(cmdText, conn); if (pars != null && pars.Length > 0) { foreach (SqlParameter p in pars) { cmd.Parameters.Add(p); } } if (conn.State == ConnectionState.Closed) { conn.Open(); } cmd.CommandType = type; SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); return reader; } catch (Exception ex) { return null; } }
方法重载:
方法重载是让类以统一的方式处理不同类型数据的一种手段。.NET中的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法, 这就是多态性
(方法名相同,返回的类型和参数不一样)
使用命令对象查询数据的步骤:
使用DataAdapter 填充数据: