表tbClass存放论坛分类
字段名 | 字段类型 | 允许空 | 说明 |
ClassID | uniqueidentifier | 否 | GUID主键,默认值newid() |
ClassName | Varchar(50) | 否 | 分类名 |
表tbBoard存放论坛分类中的版块
字段名 | 字段类型 | 允许空 | 说明 |
BoardID | uniqueidentifier | 否 | GUID主键,默认值newid() |
BoardName | Varchar(50) | 否 | 版块名 |
BoardClassID | uniqueidentifier | 否 | 版块所属分类的ID |
存储过程spCreateBoard:
CREATE PROCEDURE spCreateBoard
(
@ClassName varchar(50), //输入参数
@BoardName varchar(50), //输入参数
@ClassID varchar(50) output //输出参数
)
AS
declare @BoardCount int;
set @ClassID=(select ClassID from tbClass where ClassName = @ClassName);
insert into tbBoard(BoardName,BoardClassID) values (@BoardName,@ClassID);
set @BoardCount = (select count(*) from tbBoard);
return @BoardCount;
GO
界面TextBox1和TextBox2:
按钮事件代码:
string strCon = "server=.;database=Forum;uid=sa;pwd=ok";
using (SqlConnection con = new SqlConnection(strCon))
{
con.Open();
using (SqlCommand cmd = new SqlCommand("spCreateBoard", con))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@ClassName", SqlDbType.VarChar, 50);
cmd.Parameters["@ClassName"].Value = TextBox1.Text;
//表示其为输入参数
cmd.Parameters["@ClassName"].Direction = ParameterDirection.Input;
cmd.Parameters.Add("@BoardName", SqlDbType.VarChar, 50);
cmd.Parameters["@BoardName"].Value = TextBox2.Text;
//表示其为输入参数
cmd.Parameters["@BoardName"].Direction = ParameterDirection.Input;
cmd.Parameters.Add("@ClassID", SqlDbType.VarChar, 50);
//表示其为输出参数
cmd.Parameters["@ClassID"].Direction = ParameterDirection.Output;
cmd.Parameters.Add("@BoardCount", SqlDbType.Int);
//表示其为用户自定义函数
cmd.Parameters["@BoardCount"].Direction = ParameterDirection.ReturnValue;
cmd.ExecuteNonQuery();
foreach(SqlParameter paramter in cmd.Parameters)
{
Response.Write(string.Format("参数名{0},参数方向{1},参数值{2}<br>", paramter.ParameterName, paramter.Direction, paramter.Value));
}
}
}
结果:
文章来源:http://www.cnblogs.com/chensubo/archive/2007/12/27/1017598.html