AddPost
返回为BlogPostResults类型自定义枚举类型
参数为WeblogPost类型自定义对象变量
参数为User类型自定义对象变量
![]()
AddPost
![]()
/**//// <summary>
/// Adds a new Weblog Post to the data store
/// </summary>
public override BlogPostResults AddPost(WeblogPost post, User user, out int postID)
![]()
![]()
{
postID = -1;
![]()
// Create Instance of Connection and Command Object
//
using( SqlConnection myConnection = GetSqlConnection() )
![]()
{
SqlCommand myCommand = new SqlCommand(databaseOwner + ".cs_weblog_Post_Create", myConnection);
myCommand.CommandType = CommandType.StoredProcedure;
![]()
myCommand.Parameters.Add("RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue;
![]()
// Add parameters
//
![]()
//以下各行代码下面的注释:第一行为例子时的值,第二行开始为个人注释
myCommand.Parameters.Add("@SectionID", SqlDbType.Int).Value = post.SectionID;
// 14
//实际意义为:氯胺酮的Blog(自己建立的)
//如果是论坛,则为版块的ID
//ps:GroupID为版块集合区的ID,就是说,一个Group下面有多个Section
myCommand.Parameters.Add("@ParentID", SqlDbType.Int).Value = post.ParentID;
// 0
//如果新随笔,那么该参数在最终写入数据库时,为该新随笔记录的PostID
//如果是“评论”时调用此方法,那么该值为被评论的blog的PostID
![]()
myCommand.Parameters.Add("@AllowDuplicatePosts", SqlDbType.Bit).Value = true;
//
//字面理解,允许复制帖子
![]()
myCommand.Parameters.Add("@DuplicateIntervalInMinutes", SqlDbType.Int).Value = 1;
//
//不知道
![]()
myCommand.Parameters.Add("@Subject", SqlDbType.NVarChar, 256).Value = post.Subject;
// “新随笔,WeblogSqlDataProvider.AddPost”
//我新建随笔的时候标题
//论坛,指帖子标题
![]()
myCommand.Parameters.Add("@IsLocked", SqlDbType.Bit).Value = post.IsLocked;
// false
//发表的时候,如果Checked锁定该帖子不允许评论(相对于论坛就是不允许跟贴)
![]()
myCommand.Parameters.Add("@IsApproved", SqlDbType.Bit).Value = post.IsApproved;
// true
//是否审核
![]()
myCommand.Parameters.Add("@IsTracked", SqlDbType.Bit).Value = post.IsTracked;
// true
//不知道
![]()
myCommand.Parameters.Add("@PostType", SqlDbType.Int).Value = post.PostType;
// HTML
//帖子类型,还有BBCode
![]()
myCommand.Parameters.Add("@EmoticonID", SqlDbType.Int).Value = post.EmoticonID;
// 0
//不知道
![]()
myCommand.Parameters.Add("@UserID", SqlDbType.Int).Value = user.UserID;
// 2105
//怎样从GUID换算成这么一个int?
//是否每次不一样?经过第二次跟踪每次一样
//好像不是经过换算,跟踪其他用户的ID,发现在我公司起的这个CS里,每个userid都是从21开头,4位整数
//2101,2102,2105。。。
![]()
myCommand.Parameters.Add("@Body", SqlDbType.NText).Value = post.Body;
// public override BlogPostResults AddPost(WeblogPost post, User user, out int postID)
//日志内容,因为我是跟踪这个方法,所以将方法的第一行声明用于blog的内容
![]()
myCommand.Parameters.Add("@FormattedBody", SqlDbType.NText).Value = post.FormattedBody;
// public override BlogPostResults AddPost(WeblogPost post, User user, out int postID)
//日志内容,跟踪过多种格式的日志内容后发现这两个值一样。。。
//肯定有用途,肯定有不一样的时候,但是我未发现
![]()
myCommand.Parameters.Add("@UserHostAddress", SqlDbType.NVarChar, 32).Value = post.UserHostAddress;
// 127.0.0.1
//用户访问时使用的ip地址
![]()
myCommand.Parameters.Add("@PostDate",SqlDbType.DateTime,8).Value = post.PostDate;
// 10/17/2005
//建立帖子的日期
![]()
myCommand.Parameters.Add("@BloggerTime",SqlDbType.DateTime,8).Value = post.BloggerTime;
//10/17/2005
//建立帖子的人的机器日期(猜测)
![]()
SerializerData data = post.GetSerializerData();
![]()
![]()
myCommand.Parameters.Add("@PropertyNames", SqlDbType.NText).Value = data.Keys;
//EnableRatings:S:0:4:EnableTrackBacks:S:4:4:CommentModerationType:S:8:4:EverPublished:S:12:4:
//属性名,及名称对应的Value的定位,如果不明白,看看“序列化”相关的知识
![]()
myCommand.Parameters.Add("@PropertyValues", SqlDbType.NText).Value = data.Values;
//TrueTrueNoneTrue
//对应上面的值
//实际效果,获得的结果为:EnableRatings=True,EnableTrackBacks=True,CommentModerationType=None,EverPublished=True
![]()
myCommand.Parameters.Add(SettingsIDParameter());
myCommand.Parameters.Add("@IsSticky", SqlDbType.Bit).Value = false;
//false
//不知道
![]()
myCommand.Parameters.Add("@StickyDate", SqlDbType.DateTime).Value = System.Data.SqlTypes.SqlDateTime.MinValue;
//日期
//系统最小日期
![]()
![]()
myCommand.Parameters.Add("@Excerpt",SqlDbType.NVarChar,500).Value = DBValue(post.Excerpt);
//“”
//不知道
![]()
myCommand.Parameters.Add("@PostName",SqlDbType.NVarChar,256).Value = DBValue(post.Name);
//“”
//不知道
![]()
myCommand.Parameters.Add("@TitleUrl",SqlDbType.NVarChar,256).Value = DBValue(post.TitleUrl);
//null
//不知道
![]()
myCommand.Parameters.Add("@PostConfig",SqlDbType.Int,4).Value = post.PostConfig;
//3
//不知道
![]()
myCommand.Parameters.Add("@BlogPostType",SqlDbType.TinyInt).Value = post.BlogPostType;
//Post
//不知道
![]()
if(post.BlogPostType == BlogPostType.Post)
![]()
{
myCommand.Parameters.Add("@CategoryType",SqlDbType.TinyInt).Value = CategoryType.BlogPost;
// CategoryType.BlogPost
//CategoryType枚举值:BlogPost
![]()
myCommand.Parameters.Add("@Categories",SqlDbType.NVarChar,4000).Value = ConvertCategoriesToXML(post.Categories);
//
//不知道
}
else if(post.BlogPostType == BlogPostType.Article)
![]()
{
myCommand.Parameters.Add("@CategoryType",SqlDbType.TinyInt).Value = CategoryType.BlogArticle;
myCommand.Parameters.Add("@Categories",SqlDbType.NVarChar,4000).Value = ConvertCategoriesToXML(post.Categories);
}
![]()
myCommand.Parameters.Add("@PostID", SqlDbType.Int).Direction = ParameterDirection.Output;
//
//返回新增Post的ID
![]()
myConnection.Open();
myCommand.ExecuteNonQuery();
![]()
// LN 5/27/04: try/catch added to get rid of exceptions
BlogPostResults result = (BlogPostResults)(int)myCommand.Parameters["RETURN_VALUE"].Value;
//
//执行SP后成功与否的标志
if(result == BlogPostResults.Success)
//如果成功,才获取下面的值
postID = (int) myCommand.Parameters["@PostID"].Value;
//执行SP成功,获取out参数postID
![]()
myConnection.Close();
return result;
}
![]()
}
![]()
参数为WeblogPost类型自定义对象变量
参数为User类型自定义对象变量

/**//// <summary>
/// Adds a new Weblog Post to the data store
/// </summary>
public override BlogPostResults AddPost(WeblogPost post, User user, out int postID)

{
postID = -1;
// Create Instance of Connection and Command Object
//
using( SqlConnection myConnection = GetSqlConnection() ) 
{
SqlCommand myCommand = new SqlCommand(databaseOwner + ".cs_weblog_Post_Create", myConnection);
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.Parameters.Add("RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue;
// Add parameters
//
//以下各行代码下面的注释:第一行为例子时的值,第二行开始为个人注释
myCommand.Parameters.Add("@SectionID", SqlDbType.Int).Value = post.SectionID;
// 14
//实际意义为:氯胺酮的Blog(自己建立的)
//如果是论坛,则为版块的ID
//ps:GroupID为版块集合区的ID,就是说,一个Group下面有多个Section
myCommand.Parameters.Add("@ParentID", SqlDbType.Int).Value = post.ParentID;
// 0
//如果新随笔,那么该参数在最终写入数据库时,为该新随笔记录的PostID
//如果是“评论”时调用此方法,那么该值为被评论的blog的PostID
myCommand.Parameters.Add("@AllowDuplicatePosts", SqlDbType.Bit).Value = true;
//
//字面理解,允许复制帖子
myCommand.Parameters.Add("@DuplicateIntervalInMinutes", SqlDbType.Int).Value = 1;
//
//不知道
myCommand.Parameters.Add("@Subject", SqlDbType.NVarChar, 256).Value = post.Subject;
// “新随笔,WeblogSqlDataProvider.AddPost”
//我新建随笔的时候标题
//论坛,指帖子标题
myCommand.Parameters.Add("@IsLocked", SqlDbType.Bit).Value = post.IsLocked;
// false
//发表的时候,如果Checked锁定该帖子不允许评论(相对于论坛就是不允许跟贴)
myCommand.Parameters.Add("@IsApproved", SqlDbType.Bit).Value = post.IsApproved;
// true
//是否审核
myCommand.Parameters.Add("@IsTracked", SqlDbType.Bit).Value = post.IsTracked;
// true
//不知道
myCommand.Parameters.Add("@PostType", SqlDbType.Int).Value = post.PostType;
// HTML
//帖子类型,还有BBCode
myCommand.Parameters.Add("@EmoticonID", SqlDbType.Int).Value = post.EmoticonID;
// 0
//不知道
myCommand.Parameters.Add("@UserID", SqlDbType.Int).Value = user.UserID;
// 2105
//怎样从GUID换算成这么一个int?
//是否每次不一样?经过第二次跟踪每次一样
//好像不是经过换算,跟踪其他用户的ID,发现在我公司起的这个CS里,每个userid都是从21开头,4位整数
//2101,2102,2105。。。
myCommand.Parameters.Add("@Body", SqlDbType.NText).Value = post.Body;
// public override BlogPostResults AddPost(WeblogPost post, User user, out int postID)
//日志内容,因为我是跟踪这个方法,所以将方法的第一行声明用于blog的内容
myCommand.Parameters.Add("@FormattedBody", SqlDbType.NText).Value = post.FormattedBody;
// public override BlogPostResults AddPost(WeblogPost post, User user, out int postID)
//日志内容,跟踪过多种格式的日志内容后发现这两个值一样。。。
//肯定有用途,肯定有不一样的时候,但是我未发现
myCommand.Parameters.Add("@UserHostAddress", SqlDbType.NVarChar, 32).Value = post.UserHostAddress;
// 127.0.0.1
//用户访问时使用的ip地址
myCommand.Parameters.Add("@PostDate",SqlDbType.DateTime,8).Value = post.PostDate;
// 10/17/2005
//建立帖子的日期
myCommand.Parameters.Add("@BloggerTime",SqlDbType.DateTime,8).Value = post.BloggerTime;
//10/17/2005
//建立帖子的人的机器日期(猜测)
SerializerData data = post.GetSerializerData();

myCommand.Parameters.Add("@PropertyNames", SqlDbType.NText).Value = data.Keys;
//EnableRatings:S:0:4:EnableTrackBacks:S:4:4:CommentModerationType:S:8:4:EverPublished:S:12:4:
//属性名,及名称对应的Value的定位,如果不明白,看看“序列化”相关的知识
myCommand.Parameters.Add("@PropertyValues", SqlDbType.NText).Value = data.Values;
//TrueTrueNoneTrue
//对应上面的值
//实际效果,获得的结果为:EnableRatings=True,EnableTrackBacks=True,CommentModerationType=None,EverPublished=True
myCommand.Parameters.Add(SettingsIDParameter());
myCommand.Parameters.Add("@IsSticky", SqlDbType.Bit).Value = false;
//false
//不知道
myCommand.Parameters.Add("@StickyDate", SqlDbType.DateTime).Value = System.Data.SqlTypes.SqlDateTime.MinValue;
//日期
//系统最小日期

myCommand.Parameters.Add("@Excerpt",SqlDbType.NVarChar,500).Value = DBValue(post.Excerpt);
//“”
//不知道
myCommand.Parameters.Add("@PostName",SqlDbType.NVarChar,256).Value = DBValue(post.Name);
//“”
//不知道
myCommand.Parameters.Add("@TitleUrl",SqlDbType.NVarChar,256).Value = DBValue(post.TitleUrl);
//null
//不知道
myCommand.Parameters.Add("@PostConfig",SqlDbType.Int,4).Value = post.PostConfig;
//3
//不知道
myCommand.Parameters.Add("@BlogPostType",SqlDbType.TinyInt).Value = post.BlogPostType;
//Post
//不知道
if(post.BlogPostType == BlogPostType.Post)
{
myCommand.Parameters.Add("@CategoryType",SqlDbType.TinyInt).Value = CategoryType.BlogPost;
// CategoryType.BlogPost
//CategoryType枚举值:BlogPost
myCommand.Parameters.Add("@Categories",SqlDbType.NVarChar,4000).Value = ConvertCategoriesToXML(post.Categories);
//
//不知道
}
else if(post.BlogPostType == BlogPostType.Article)
{
myCommand.Parameters.Add("@CategoryType",SqlDbType.TinyInt).Value = CategoryType.BlogArticle;
myCommand.Parameters.Add("@Categories",SqlDbType.NVarChar,4000).Value = ConvertCategoriesToXML(post.Categories);
}
myCommand.Parameters.Add("@PostID", SqlDbType.Int).Direction = ParameterDirection.Output;
//
//返回新增Post的ID
myConnection.Open();
myCommand.ExecuteNonQuery();
// LN 5/27/04: try/catch added to get rid of exceptions
BlogPostResults result = (BlogPostResults)(int)myCommand.Parameters["RETURN_VALUE"].Value;
//
//执行SP后成功与否的标志
if(result == BlogPostResults.Success)
//如果成功,才获取下面的值
postID = (int) myCommand.Parameters["@PostID"].Value;
//执行SP成功,获取out参数postID
myConnection.Close();
return result;
}
}

浙公网安备 33010602011771号