标签:
简单的只有DAL,MODEL和web

UserDAL是读取数据库,和把读取的结果集,转化成泛型:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Reflection;
using System.Text;
namespace Andu.DAL
{
public class UserDAL
{
//public List<T> GetAllListById<T>(string ConnStr, string SqlStr, int id) where T : Model.BaseModel
//{
// SqlStr += "where ID=" + id;
// using (SqlConnection conn = new SqlConnection(ConnStr))
// {
// using (SqlDataAdapter sda = new SqlDataAdapter(SqlStr, conn))
// {
// DataSet ds = new DataSet();
// sda.Fill(ds);
// return DataSetToList<T>(ds, 0);
// }
// }
//}
//public List<T> GetAllList<T>(string ConnStr, string SqlStr) where T:Model.BaseModel
//{
// using (SqlConnection conn=new SqlConnection(ConnStr))
// {
// using (SqlDataAdapter sda=new SqlDataAdapter(SqlStr,conn))
// {
// DataSet ds=new DataSet();
// sda.Fill(ds);
// return DataSetToList<T>(ds, 0);
// }
// }
//}
public List<T> GetAllListById<T>(string ConnStr, string SqlStr,int id) where T : Model.BaseModel
{
SqlStr += "where ID=" + id;
using (SqlConnection conn = new SqlConnection(ConnStr))
{
SqlCommand command = new SqlCommand(SqlStr, conn);
conn.Open();
SqlDataReader read = command.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(read);
return DataTableToList<T>(dt);
}
}
public List<T> GetAllList<T>(string ConnStr, string SqlStr) where T : Model.BaseModel
{
using (SqlConnection conn = new SqlConnection(ConnStr))
{
SqlCommand command = new SqlCommand(SqlStr, conn);
conn.Open();
SqlDataReader read = command.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(read);
return DataTableToList<T>(dt);
}
}
private List<T> DataTableToList<T>(DataTable dt)
{
if (dt == null || dt.Rows.Count == 0)
{
return null;
}
List<T> list = new List<T>();
T entity = default(T);
foreach (DataRow dr in dt.Rows)
{
entity = Activator.CreateInstance<T>();
PropertyInfo[] pis = entity.GetType().GetProperties();
foreach (PropertyInfo pi in pis)
{
if (dt.Columns.Contains(pi.Name))
{
if (!pi.CanWrite)
{
continue;
}
if (dr[pi.Name] != DBNull.Value)
{
Type t = pi.PropertyType;
if (t.FullName == "System.Guid")
{
pi.SetValue(entity, Guid.Parse(dr[pi.Name].ToString()), null);
}
else
{
pi.SetValue(entity, dr[pi.Name], null);
}
}
}
}
list.Add(entity);
}
return list;
}
public List<T> DataSetToList<T>(DataSet dataset, int p)
{
//确认参数有效
if (dataset == null || dataset.Tables.Count <= 0 || p < 0)
{
return null;
}
DataTable dt = dataset.Tables[p];
List<T> list = new List<T>();
for (int i = 0; i < dt.Rows.Count; i++)
{
//创建泛型对象
T _t = Activator.CreateInstance<T>();
//获取对象所有属性
PropertyInfo[] propertyInfo = _t.GetType().GetProperties();
//属性和名称相同时则赋值
for (int j = 0; j < dt.Columns.Count; j++)
{
foreach (PropertyInfo info in propertyInfo)
{
if (dt.Columns[j].ColumnName.ToUpper().Equals(info.Name.ToUpper()))
{
if (dt.Rows[i][j] != DBNull.Value)
{
info.SetValue(_t, dt.Rows[i][j], null);
}
else
{
info.SetValue(_t, null, null);
}
break;
}
}
}
list.Add(_t);
}
return list;
}
}
}
model层就是数据库实体类,根据数据库生成的:
basemodel:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Andu.Model
{
public class BaseModel
{
public BaseModel() { }
public int ID { get; set; }
}
}
UserModel:
using System;
namespace Andu.Model
{
/// <summary>User表实体类
/// 一两
/// 创建时间:2015-12-14 08:53:12
/// </summary>
[Serializable]
public class UserModel:BaseModel
{
public UserModel()
{}
private string _Name;
/// <summary>
///
/// </summary>
public string Name
{
set{ _Name=value;}
get{return _Name;}
}
private string _Account;
/// <summary>
///
/// </summary>
public string Account
{
set{ _Account=value;}
get{return _Account;}
}
private string _Password;
/// <summary>
///
/// </summary>
public string Password
{
set{ _Password=value;}
get{return _Password;}
}
private string _Email;
/// <summary>
///
/// </summary>
public string Email
{
set{ _Email=value;}
get{return _Email;}
}
private string _Mobile;
/// <summary>
///
/// </summary>
public string Mobile
{
set{ _Mobile=value;}
get{return _Mobile;}
}
private int _CompanyId;
/// <summary>
///
/// </summary>
public int CompanyId
{
set{ _CompanyId=value;}
get{return _CompanyId;}
}
private string _CompanyName;
/// <summary>
///
/// </summary>
public string CompanyName
{
set{ _CompanyName=value;}
get{return _CompanyName;}
}
private int _State;
/// <summary>用户状态 0正常 1冻结 2删除
///
/// </summary>
public int State
{
set{ _State=value;}
get{return _State;}
}
private int _UserType;
/// <summary>用户类型 1 普通用户 2管理员 4超级管理员
///
/// </summary>
public int UserType
{
set{ _UserType=value;}
get{return _UserType;}
}
private DateTime _LastLoginTime;
/// <summary>
///
/// </summary>
public DateTime LastLoginTime
{
set{ _LastLoginTime=value;}
get{return _LastLoginTime;}
}
private DateTime _CreateTime;
/// <summary>
///
/// </summary>
public DateTime CreateTime
{
set{ _CreateTime=value;}
get{return _CreateTime;}
}
private int _CreatorId;
/// <summary>
///
/// </summary>
public int CreatorId
{
set{ _CreatorId=value;}
get{return _CreatorId;}
}
private int _LastModifierId;
/// <summary>
///
/// </summary>
public int LastModifierId
{
set{ _LastModifierId=value;}
get{return _LastModifierId;}
}
private DateTime _LastModifyTime;
/// <summary>
///
/// </summary>
public DateTime LastModifyTime
{
set{ _LastModifyTime=value;}
get{return _LastModifyTime;}
}
}
}
上门的usermodel是用自动三层生成,根据数据库自动生成的
web.config:
<?xml version="1.0" encoding="utf-8"?>
<!--
有关如何配置 ASP.NET 应用程序的详细信息,请访问
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<connectionStrings>
<add name="conn" connectionString="Data Source=.;Initial Catalog=zuoye01;User ID=sa;Password=sa"/>
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
</configuration>
前台页面调用:
WebForm1.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Web.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<table border="1">
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<tr>
<th>序号</th><th>姓名</th><th>邮箱</th><th>公司</th><th>用户类型</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#Eval("id") %></td><td><%#Eval("name") %></td><td><%#Eval("email") %></td><td><%#Eval("companyname") %></td><td><%#Eval("UserType") %></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</form>
</body>
</html>
后台:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Andu.Model;
using Andu.DAL;
using System.Data.SqlClient;
using System.Configuration;
namespace Web
{
public partial class WebForm1 : System.Web.UI.Page
{
UserDAL userdal = new UserDAL();
protected void Page_Load(object sender, EventArgs e)
{
string conn = ConfigurationManager.ConnectionStrings["conn"].ToString();
string sql = "select * from [User]";
//获取全部
Repeater1.DataSource = userdal.GetAllList<UserModel>(conn, sql);
Repeater1.DataBind();
//根据ID获取
//Repeater1.DataSource = userdal.GetAllListById<UserModel>(conn, sql, 11);
//Repeater1.DataBind();
List<UserModel> usermodel = userdal.GetAllList<UserModel>(conn, sql);
//UserType由小到大排序
//usermodel.Sort((x, y) => x.UserType.CompareTo(y.UserType));
//UserType由大到小排序
//usermodel.Sort((x, y) => y.UserType.CompareTo(x.UserType));
//Repeater1.DataSource = usermodel;
//Repeater1.DataBind();
int maxu = 0;
maxu = usermodel.Max(x => x.UserType);
Label1.Text = "user表中UserType最大值是:" + maxu.ToString();
//maxu = usermodel.Min(x => x.UserType);
//Label1.Text = "user表中UserType最小值是:" + maxu.ToString();
//double pingjun = usermodel.Average(x => x.UserType);
//Label1.Text = "user表中UserType平均值是:" + pingjun.ToString("0.00");
//maxu = usermodel.Sum(x => x.UserType);
//Label1.Text = "user表中UserType和是:" + maxu.ToString();
}
}
}
标签:
原文地址:http://www.cnblogs.com/500k/p/5049690.html