You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
127 lines
3.8 KiB
C#
127 lines
3.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Data;
|
|
using System.Data.Sql;
|
|
using System.Data.SqlClient;
|
|
|
|
using Dapper;
|
|
|
|
using OAuth2Study.Model;
|
|
using OAuth2Study.IDal;
|
|
|
|
|
|
namespace OAuth2Study.Dal.MsSql
|
|
{
|
|
public class UserDal : UserIDal
|
|
{
|
|
public (bool result, User user) AddUser(User user)
|
|
{
|
|
int effectRow = 0;
|
|
string sql = "insert into [user] (Name,Password,Age,Gender) values(@Name,@Password,@Age,@Gender)";
|
|
|
|
using (IDbConnection connect=new SqlConnection(MsSqlHelper.ConnectString))
|
|
{
|
|
effectRow = connect.Execute(sql,user);
|
|
//或者
|
|
//effectRow = connect.Execute(sql, new { @Name = user.Name,@Password=user.Password, @Age=user.Age, @Gender=user.Gender });
|
|
}
|
|
|
|
if (effectRow > 0)
|
|
{
|
|
return ValueTuple.Create(true, user);
|
|
}
|
|
else
|
|
{
|
|
return ValueTuple.Create(false, user);
|
|
}
|
|
}
|
|
|
|
public User GetUser(int userId)
|
|
{
|
|
IEnumerable<User> result;
|
|
string querySql = "select * from [user] where id=@id";
|
|
using (IDbConnection connect = new SqlConnection(MsSqlHelper.ConnectString))
|
|
{
|
|
result = connect.Query<User>(querySql, new { userId });
|
|
}
|
|
|
|
return result.SingleOrDefault();
|
|
}
|
|
|
|
public IQueryable<User> GetUsers()
|
|
{
|
|
IEnumerable<User> result;
|
|
string querySql = "select * from [user]";
|
|
using (IDbConnection connect = new SqlConnection(MsSqlHelper.ConnectString))
|
|
{
|
|
result = connect.Query<User>(querySql);
|
|
}
|
|
|
|
return result.AsQueryable();
|
|
}
|
|
|
|
public IQueryable<User> GetUsers(Func<User,bool> predicate)
|
|
{
|
|
IEnumerable<User> result;
|
|
string querySql = "select * from [user]";
|
|
using (IDbConnection connect = new SqlConnection(MsSqlHelper.ConnectString))
|
|
{
|
|
result = connect.Query<User>(querySql).Where(predicate);
|
|
}
|
|
|
|
return result.AsQueryable();
|
|
}
|
|
|
|
public bool RemoveUser(User user)
|
|
{
|
|
return RemoveUser(user.Id);
|
|
}
|
|
|
|
public bool RemoveUser(int userId)
|
|
{
|
|
int effectRow = 0;
|
|
string query = "DELETE FROM [user] WHERE id = @id";
|
|
using (IDbConnection connect = new SqlConnection(MsSqlHelper.ConnectString))
|
|
{
|
|
effectRow = connect.Execute(query, new { @id = userId });
|
|
}
|
|
|
|
return effectRow > 0;
|
|
}
|
|
|
|
public (bool result, User user) UpdateUser(User user)
|
|
{
|
|
int effectRow = 0;
|
|
string updateSql = "Update [user] Set Name=@Name, Password=@Password, Age=@Age, Gender=@Gender WHERE id =@id";
|
|
using (IDbConnection connect = new SqlConnection(MsSqlHelper.ConnectString))
|
|
{
|
|
effectRow = connect.Execute(updateSql, user);
|
|
}
|
|
|
|
if (effectRow > 0)
|
|
{
|
|
return ValueTuple.Create(true, user);
|
|
}
|
|
else
|
|
{
|
|
return ValueTuple.Create(false, user);
|
|
}
|
|
}
|
|
|
|
public bool ExitsByName(string userName)
|
|
{
|
|
int effectRow = 0;
|
|
string querySql = "IF EXISTS (SELECT id FROM [dbo].[User] WHERE Name=@Name) SELECT 1 ELSE SELECT 0";
|
|
using (IDbConnection connect = new SqlConnection(MsSqlHelper.ConnectString))
|
|
{
|
|
effectRow = connect.ExecuteScalar<int>(querySql, new { @Name = userName});
|
|
}
|
|
|
|
return effectRow > 0;
|
|
}
|
|
}
|
|
}
|