You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

291 lines
13 KiB

using System;
using System.Data;
using System.Text;
using System.Data.SqlClient;
namespace Basic.DAL
{
/// <summary>
/// 频道
/// </summary>
public partial class channel
{
/// <summary>
/// 增加一条数据
/// </summary>
public int Add(Basic.Model.channel model)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("insert into tb_channel(");
strSql.Append("class_id,title,guid,parent_id,class_list,class_layer,paixu,url,path,content,seo_title,seo_keywords,seo_description)");
strSql.Append(" values (");
strSql.Append("@class_id,@title,@guid,@parent_id,@class_list,@class_layer,@paixu,@url,@path,@content,@seo_title,@seo_keywords,@seo_description)");
strSql.Append(";select @@IDENTITY");
SqlParameter[] parameters = {
new SqlParameter("@class_id", SqlDbType.Int,10),
new SqlParameter("@title", SqlDbType.NVarChar,100),
new SqlParameter("@guid", SqlDbType.NVarChar,50),
new SqlParameter("@parent_id", SqlDbType.Int,10),
new SqlParameter("@class_list", SqlDbType.NVarChar,500),
new SqlParameter("@class_layer", SqlDbType.Int,10),
new SqlParameter("@paixu", SqlDbType.Int,10),
new SqlParameter("@url", SqlDbType.NVarChar,255),
new SqlParameter("@path", SqlDbType.NVarChar,255),
new SqlParameter("@content", SqlDbType.NText,1073741823),
new SqlParameter("@seo_title", SqlDbType.NVarChar,255),
new SqlParameter("@seo_keywords", SqlDbType.NVarChar,255),
new SqlParameter("@seo_description", SqlDbType.NVarChar,255)};
parameters[0].Value = model.class_id;
parameters[1].Value = model.title;
parameters[2].Value = model.guid;
parameters[3].Value = model.parent_id;
parameters[4].Value = model.class_list;
parameters[5].Value = model.class_layer;
parameters[6].Value = model.paixu;
parameters[7].Value = model.url;
parameters[8].Value = model.path;
parameters[9].Value = model.content;
parameters[10].Value = model.seo_title;
parameters[11].Value = model.seo_keywords;
parameters[12].Value = model.seo_description;
object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
if (obj == null)
{
return 0;
}
else
{
return Convert.ToInt32(obj);
}
}
/// <summary>
/// 更新一条数据
/// </summary>
public bool Update(Basic.Model.channel model)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("update tb_channel set ");
strSql.Append("class_id=@class_id,");
strSql.Append("title=@title,");
strSql.Append("guid=@guid,");
strSql.Append("parent_id=@parent_id,");
strSql.Append("class_list=@class_list,");
strSql.Append("class_layer=@class_layer,");
strSql.Append("paixu=@paixu,");
strSql.Append("url=@url,");
strSql.Append("path=@path,");
strSql.Append("content=@content,");
strSql.Append("seo_title=@seo_title,");
strSql.Append("seo_keywords=@seo_keywords,");
strSql.Append("seo_description=@seo_description");
strSql.Append(" where id=@id");
SqlParameter[] parameters = {
new SqlParameter("@class_id", SqlDbType.Int,10),
new SqlParameter("@title", SqlDbType.NVarChar,100),
new SqlParameter("@guid", SqlDbType.NVarChar,50),
new SqlParameter("@parent_id", SqlDbType.Int,10),
new SqlParameter("@class_list", SqlDbType.NVarChar,500),
new SqlParameter("@class_layer", SqlDbType.Int,10),
new SqlParameter("@paixu", SqlDbType.Int,10),
new SqlParameter("@url", SqlDbType.NVarChar,255),
new SqlParameter("@path", SqlDbType.NVarChar,255),
new SqlParameter("@content", SqlDbType.NText,1073741823),
new SqlParameter("@seo_title", SqlDbType.NVarChar,255),
new SqlParameter("@seo_keywords", SqlDbType.NVarChar,255),
new SqlParameter("@seo_description", SqlDbType.NVarChar,255),
new SqlParameter("@id", SqlDbType.Int,4)};
parameters[0].Value = model.class_id;
parameters[1].Value = model.title;
parameters[2].Value = model.guid;
parameters[3].Value = model.parent_id;
parameters[4].Value = model.class_list;
parameters[5].Value = model.class_layer;
parameters[6].Value = model.paixu;
parameters[7].Value = model.url;
parameters[8].Value = model.path;
parameters[9].Value = model.content;
parameters[10].Value = model.seo_title;
parameters[11].Value = model.seo_keywords;
parameters[12].Value = model.seo_description;
parameters[13].Value = model.id;
int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
if (rows > 0)
{
return true;
}
else
{
return false;
}
}
/// <summary>
/// 删除一条数据
/// </summary>
public bool Delete(int id)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("delete from tb_channel");
strSql.Append(" where id=@id");
SqlParameter[] parameters = {
new SqlParameter("@id", SqlDbType.Int,4)};
parameters[0].Value = id;
int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
if (rows > 0)
{
return true;
}
else
{
return false;
}
}
/// <summary>
/// 得到一个对象实体
/// </summary>
public Basic.Model.channel GetModel(int id)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select top 1 id,class_id,title,guid,parent_id,class_list,class_layer,paixu,url,path,content,seo_title,seo_keywords,seo_description from tb_channel");
strSql.Append(" where id=@id");
SqlParameter[] parameters = {
new SqlParameter("@id", SqlDbType.Int,4)};
parameters[0].Value = id;
Basic.Model.channel model = new Basic.Model.channel();
DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters);
if (ds.Tables[0].Rows.Count > 0)
{
if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["id"].ToString()))
{
model.id = int.Parse(ds.Tables[0].Rows[0]["id"].ToString());
}
if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["class_id"].ToString()))
{
model.class_id = int.Parse(ds.Tables[0].Rows[0]["class_id"].ToString());
}
if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["title"].ToString()))
{
model.title = ds.Tables[0].Rows[0]["title"].ToString();
}
if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["guid"].ToString()))
{
model.guid = ds.Tables[0].Rows[0]["guid"].ToString();
}
if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["parent_id"].ToString()))
{
model.parent_id = int.Parse(ds.Tables[0].Rows[0]["parent_id"].ToString());
}
if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["class_list"].ToString()))
{
model.class_list = ds.Tables[0].Rows[0]["class_list"].ToString();
}
if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["class_layer"].ToString()))
{
model.class_layer = int.Parse(ds.Tables[0].Rows[0]["class_layer"].ToString());
}
if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["paixu"].ToString()))
{
model.paixu = int.Parse(ds.Tables[0].Rows[0]["paixu"].ToString());
}
if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["url"].ToString()))
{
model.url = ds.Tables[0].Rows[0]["url"].ToString();
}
if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["path"].ToString()))
{
model.path = ds.Tables[0].Rows[0]["path"].ToString();
}
if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["content"].ToString()))
{
model.content = ds.Tables[0].Rows[0]["content"].ToString();
}
if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["seo_title"].ToString()))
{
model.seo_title = ds.Tables[0].Rows[0]["seo_title"].ToString();
}
if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["seo_keywords"].ToString()))
{
model.seo_keywords = ds.Tables[0].Rows[0]["seo_keywords"].ToString();
}
if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["seo_description"].ToString()))
{
model.seo_description = ds.Tables[0].Rows[0]["seo_description"].ToString();
}
return model;
}
else
{
return null;
}
}
/// <summary>
/// 取得所有类别列表
/// </summary>
/// <param name="parent_id">父ID</param>
/// <param name="class_id">分类ID</param>
/// <returns></returns>
public DataTable GetList(int parent_id, int class_id)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select * from tb_channel");
strSql.Append(" where class_id=" + class_id + " order by paixu desc,id asc");
DataSet ds = DbHelperSQL.Query(strSql.ToString());
DataTable oldData = ds.Tables[0] as DataTable;
if (oldData == null)
{
return null;
}
//复制结构
DataTable newData = oldData.Clone();
//调用迭代组合成DAGATABLE
GetChilds(oldData, newData, parent_id, class_id);
return newData;
}
/// <summary>
/// 从内存中取得所有下级类别列表(自身迭代)
/// </summary>
private void GetChilds(DataTable oldData, DataTable newData, int parent_id, int channel_id)
{
DataRow[] dr = oldData.Select("parent_id=" + parent_id);
for (int i = 0; i < dr.Length; i++)
{
//添加一行数据
DataRow row = newData.NewRow();
row["id"] = int.Parse(dr[i]["id"].ToString());
row["class_id"] = int.Parse(dr[i]["class_id"].ToString());
row["title"] = dr[i]["title"].ToString();
row["guid"] = dr[i]["guid"].ToString();
row["parent_id"] = int.Parse(dr[i]["parent_id"].ToString());
row["class_list"] = dr[i]["class_list"].ToString();
row["class_layer"] = int.Parse(dr[i]["class_layer"].ToString());
row["paixu"] = int.Parse(dr[i]["paixu"].ToString());
row["url"] = dr[i]["url"].ToString();
row["path"] = dr[i]["path"].ToString();
row["content"] = dr[i]["content"].ToString();
row["seo_title"] = dr[i]["seo_title"].ToString();
row["seo_keywords"] = dr[i]["seo_keywords"].ToString();
row["seo_description"] = dr[i]["seo_description"].ToString();
newData.Rows.Add(row);
//调用自身迭代
this.GetChilds(oldData, newData, int.Parse(dr[i]["id"].ToString()), channel_id);
}
}
/// <summary>
/// 修改一列数据
/// </summary>
public void UpdateField(int id, string strValue)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("update tb_channel set " + strValue);
strSql.Append(" where id=" + id);
DbHelperSQL.ExecuteSql(strSql.ToString());
}
}
}