📄 webservice.cs
字号:
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Data;
//添加对SqlClient命名空间的引用
using System.Data.SqlClient;
namespace WebService
{
public class BBS_DataBase : System.Web.Services.WebService
{
public BBS_DataBase()
{
}
private static string DBconn = "Data Source=AYWIZARD\\SQLDATABASE;Initial Catalog=BBS_DB;Persist Security Info=True;User ID=sa;password=sa2005";
[WebMethod]
//登陆
public DataSet Login(string name, string pass)
{
//获得数据库连接
SqlConnection conn = new SqlConnection(DBconn);
//创建命令
SqlCommand SqlCmd = conn.CreateCommand();
//使用pd_Login存储过程
SqlCmd.CommandType = CommandType.StoredProcedure;
SqlCmd.CommandText = "pd_Login";
//传入用户名与密码参数
SqlParameter parInput1 = SqlCmd.Parameters.Add("@Name", SqlDbType.Char);
parInput1.Direction = ParameterDirection.Input;
parInput1.Value = name.Trim();
SqlParameter parInput2 = SqlCmd.Parameters.Add("@Pass", SqlDbType.Char);
parInput2.Direction = ParameterDirection.Input;
parInput2.Value = pass.Trim();
//连接数据库
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
//执行sql命令
SqlDataAdapter myDataAdapter = new SqlDataAdapter(SqlCmd);
DataSet myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, "UserInfor");
//获得用户等级与昵称信息
if (conn.State == ConnectionState.Open)
conn.Close();
//返回数据集
return myDataSet;
}
[WebMethod]
//获得最新的主题
public DataSet GetNewList(string sort)
{
SqlConnection conn = new SqlConnection(DBconn);
//使用pd_GetNewList存储过程
SqlCommand SqlCmd = conn.CreateCommand();
SqlCmd.CommandType = CommandType.StoredProcedure;
SqlCmd.CommandText = "pd_GetNewList";
//把论坛分区做为参数传入
SqlParameter parInput1 = SqlCmd.Parameters.Add("@group", SqlDbType.Char);
parInput1.Direction = ParameterDirection.Input;
parInput1.Value = sort.Trim();
//打开数据库连接
try
{
if (conn.State == ConnectionState.Closed)
conn.Open();
//使用SqlDataAdapter把数据填充到DataSet类型中
SqlDataAdapter myDataAdapter = new SqlDataAdapter(SqlCmd);
DataSet myDataSet = new DataSet();
//将表TitleList填写到DataSet类型中
myDataAdapter.Fill(myDataSet, "TitleList");
//返回DateSet类型值
return myDataSet;
}
finally
{
//关闭数据库
if (conn.State == ConnectionState.Open)
conn.Close();
}
}
[WebMethod]
//检查用户名是否存在
public int CheckUser(string name)
{
//获得数据库连接
SqlConnection conn = new SqlConnection(DBconn);
//获得数据库命令
SqlCommand SqlCmd = conn.CreateCommand();
//使用pd_checkUser存储过程
SqlCmd.CommandType = CommandType.StoredProcedure;
SqlCmd.CommandText = "pd_checkUser";
//传入用户名参数
SqlParameter parInput1 = SqlCmd.Parameters.Add("@Name", SqlDbType.Char);
parInput1.Direction = ParameterDirection.Input;
parInput1.Value = name.Trim();
//获得返回值
SqlParameter parReturn1 = SqlCmd.Parameters.Add("returnvalue", SqlDbType.Int);
parReturn1.Direction = ParameterDirection.ReturnValue;
//打开数据库
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
int state;
//执行Sql命令
try
{
//获得命令的返回值
SqlCmd.ExecuteNonQuery();
state = Convert.ToInt32(SqlCmd.Parameters["returnvalue"].Value);
}
catch
{
//若查找失败 置state变量为0
state = 0;
}
if (conn.State == ConnectionState.Open)
conn.Close();
return state;
}
[WebMethod]
//注册
public int Register(string[] regedit)
{
//连接数据库
SqlConnection conn = new SqlConnection(DBconn);
SqlCommand SqlCmd = conn.CreateCommand();
//使用pd_regedit存储过程
SqlCmd.CommandType = CommandType.StoredProcedure;
SqlCmd.CommandText = "pd_regedit";
//设置注册的用户默认的组为1 为用户
//数据库中有默认的用户为0组 为管理员
//将用户信息作为参数传入
SqlParameter parInput1 = SqlCmd.Parameters.Add("@name", SqlDbType.Char);
parInput1.Direction = ParameterDirection.Input;
parInput1.Value = regedit[0].Trim();
SqlParameter parInput2 = SqlCmd.Parameters.Add("@nick", SqlDbType.Char);
parInput2.Direction = ParameterDirection.Input;
parInput2.Value = regedit[1].Trim();
SqlParameter parInput3 = SqlCmd.Parameters.Add("@pass", SqlDbType.Char);
parInput3.Direction = ParameterDirection.Input;
parInput3.Value = regedit[2].Trim();
SqlParameter parInput4 = SqlCmd.Parameters.Add("@email", SqlDbType.VarChar);
parInput4.Direction = ParameterDirection.Input;
parInput4.Value = regedit[3].Trim();
SqlParameter parInput5 = SqlCmd.Parameters.Add("@mark", SqlDbType.VarChar);
parInput5.Direction = ParameterDirection.Input;
parInput5.Value = regedit[4].Trim();
//获得存储过程的返回值
SqlParameter parReturn1 = SqlCmd.Parameters.Add("returnvalue", SqlDbType.Int);
parReturn1.Direction = ParameterDirection.ReturnValue;
//打开数据库连接
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
int state;
try
{
//执行插入用户信息命令 并获得返回值
SqlCmd.ExecuteNonQuery();
state = Convert.ToInt32(SqlCmd.Parameters["returnvalue"].Value);
}
catch
{
state = 0;
}
finally
{
//关闭数据库
if (conn.State == ConnectionState.Open)
conn.Close();
}
//返回插入数据是否成功的状态值
return state;
}
[WebMethod]
//获得特定组的主题贴
public DataSet GetSortList(string sort)
{
SqlConnection conn = new SqlConnection(DBconn);
SqlCommand SqlCmd = conn.CreateCommand();
SqlCmd.CommandType = CommandType.StoredProcedure;
SqlCmd.CommandText = "pd_sortList";
//将组名传入
SqlParameter parInput1 = SqlCmd.Parameters.Add("@group", SqlDbType.Char);
parInput1.Direction = ParameterDirection.Input;
parInput1.Value = sort.Trim();
try
{
if (conn.State == ConnectionState.Closed)
conn.Open();
//使用SqlDataAdapter把数据填充到DataSet类型中
SqlDataAdapter myDataAdapter = new SqlDataAdapter(SqlCmd);
DataSet myDataSet = new DataSet();
//将表TitleList填写到DataSet类型中
myDataAdapter.Fill(myDataSet, "TitleList");
//返回DateSet类型值
return myDataSet;
}
finally
{
//关闭数据库
if (conn.State == ConnectionState.Open)
conn.Close();
}
}
[WebMethod]
//发表主题
public int AppearTitle(string name, string title, string cont, string group, string nick, int exp)
{
SqlConnection conn = new SqlConnection(DBconn);
SqlCommand SqlCmd = conn.CreateCommand();
SqlCmd.CommandType = CommandType.StoredProcedure;
//使用pd_appearNote存储过程
SqlCmd.CommandText = "pd_appearNote";
//将主题相关参数传入
SqlParameter parInput1 = SqlCmd.Parameters.Add("@name", SqlDbType.Char);
parInput1.Direction = ParameterDirection.Input;
parInput1.Value = name.Trim();
SqlParameter parInput2 = SqlCmd.Parameters.Add("@title", SqlDbType.Char);
parInput2.Direction = ParameterDirection.Input;
parInput2.Value = title.Trim();
//使用系统时间作为发表主题时间
SqlParameter parInput3 = SqlCmd.Parameters.Add("@time", SqlDbType.Char);
parInput3.Direction = ParameterDirection.Input;
parInput3.Value = System.DateTime.Now;
SqlParameter parInput4 = SqlCmd.Parameters.Add("@group", SqlDbType.VarChar);
parInput4.Direction = ParameterDirection.Input;
parInput4.Value = group;
SqlParameter parInput5 = SqlCmd.Parameters.Add("@content", SqlDbType.VarChar);
parInput5.Direction = ParameterDirection.Input;
parInput5.Value = cont;
SqlParameter parInput6 = SqlCmd.Parameters.Add("@nick", SqlDbType.VarChar);
parInput6.Direction = ParameterDirection.Input;
parInput6.Value = nick;
SqlParameter parReturn1 = SqlCmd.Parameters.Add("returnvalue", SqlDbType.Int);
parReturn1.Direction = ParameterDirection.ReturnValue;
//使用pd_GetExp存储过程
SqlCommand SqlCmd1 = conn.CreateCommand();
SqlCmd1.CommandType = CommandType.StoredProcedure;
SqlCmd1.CommandText = "pd_GetExp";
SqlParameter parInput7 = SqlCmd1.Parameters.Add("@name", SqlDbType.Char);
parInput7.Direction = ParameterDirection.Input;
parInput7.Value = name.Trim();
SqlParameter parInput8 = SqlCmd1.Parameters.Add("@exp", SqlDbType.Int);
parInput8.Direction = ParameterDirection.Input;
parInput8.Value = exp + 1;
//打开数据库连接
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
int state;
try
{
//执行插入新主题命令
SqlCmd.ExecuteNonQuery();
//执行增加经验值命令
SqlCmd1.ExecuteNonQuery();
state = Convert.ToInt32(SqlCmd.Parameters["returnvalue"].Value);
}
catch
{
state = 0;
}
finally
{
//关闭数据库
if (conn.State == ConnectionState.Open)
conn.Close();
}
return state;
}
[WebMethod]
//获得用户信息
public DataSet GetUserInfor(string name)
{
SqlConnection conn = new SqlConnection(DBconn);
//使用pd_GetUserInfor存储过程
SqlCommand SqlCmd = conn.CreateCommand();
SqlCmd.CommandType = CommandType.StoredProcedure;
SqlCmd.CommandText = "pd_GetUserInfor";
SqlParameter parInput1 = SqlCmd.Parameters.Add("@name", SqlDbType.Char);
parInput1.Direction = ParameterDirection.Input;
parInput1.Value = name;
try
{
if (conn.State == ConnectionState.Closed)
conn.Open();
SqlDataAdapter myDataAdapter = new SqlDataAdapter(SqlCmd);
DataSet myDataSet = new DataSet();
//使用返回的数据填充表
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -