using System;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
using System.Text;
using System.Collections;
using System.Collections.Generic;
using DSWeb.Models;
using DSWeb.DataAccess;
namespace DSWeb.EntityDA
{
public class AccountDA
{
private const string PARM_Account_GID = "@gid";
private const string SQL_SELECT_Account_ALL = " SELECT GID,LINKID,CODENAME,CURRENCY,BANKNAME,ACCOUNT,SubjectCode,REMARK,FINANCESOFTCODE,CREATEUSER,CREATETIME,MODIFIEDUSER,MODIFIEDTIME FROM sys_bank order by CODENAME";
private const string SQL_SELECT_Account_BYGID = " SELECT GID,LINKID,CODENAME,CURRENCY,BANKNAME,ACCOUNT,SubjectCode,REMARK,FINANCESOFTCODE,CREATEUSER,CREATETIME,MODIFIEDUSER,MODIFIEDTIME FROM sys_bank WHERE GID = @gid";
private const string SQL_SELECT_Account_TOP1 = " SELECT top 1 GID,LINKID,CODENAME,CURRENCY,BANKNAME,ACCOUNT,SubjectCode,REMARK,FINANCESOFTCODE,CREATEUSER,CREATETIME,MODIFIEDUSER,MODIFIEDTIME FROM sys_bank order by CODENAME";
private string strSqlInsertInfo = "insert into [sys_bank](GID,LINKID,CODENAME,CURRENCY,BANKNAME,ACCOUNT,SubjectCode,REMARK,CREATEUSER,MODIFIEDUSER,FINANCESOFTCODE) values(@GID,@LINKID,@CODENAME,@CURRENCY,@BANKNAME,@ACCOUNT,@SubjectCode,@REMARK,@CREATEUSER,@MODIFIEDUSER,@FINANCESOFTCODE)";
private string strSqlUpdateInfo = "update [sys_bank] set LINKID=@LINKID,CODENAME=@CODENAME,CURRENCY=@CURRENCY,BANKNAME=@BANKNAME,ACCOUNT=@ACCOUNT,SubjectCode=@SubjectCode,REMARK=@REMARK,MODIFIEDUSER=@MODIFIEDUSER,MODIFIEDTIME=GETDATE(),FINANCESOFTCODE=@FINANCESOFTCODE where GID=@GID";
private const string SQL_DELETE_Account_BY_GID = "DELETE FROM sys_bank WHERE GID = @gid";
#region 获取所有公司信息
///
/// 获取所有公司信息
///
/// List
public IList GetAllAccount()
{
IList AccountEntites = new List();
AccountEntity AccountEntity = null;
using (SqlDataReader sqlRead = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_Account_ALL, null))
{
try
{
while (sqlRead.Read())
{
AccountEntity = new AccountEntity();
if (!sqlRead.IsDBNull(0))
{
AccountEntity.GID = sqlRead.GetString(0);
}
if (!sqlRead.IsDBNull(1))
{
AccountEntity.LINKID = sqlRead.GetString(1);
}
if (!sqlRead.IsDBNull(2))
{
AccountEntity.CODENAME = sqlRead.GetString(2);
}
if (!sqlRead.IsDBNull(3))
{
AccountEntity.CURRENCY = sqlRead.GetString(3);
}
if (!sqlRead.IsDBNull(4))
{
AccountEntity.BANKNAME = sqlRead.GetString(4);
}
if (!sqlRead.IsDBNull(5))
{
AccountEntity.ACCOUNT = sqlRead.GetString(5);
}
if (!sqlRead.IsDBNull(6))
{
AccountEntity.SubjectCode = sqlRead.GetString(6);
}
if (!sqlRead.IsDBNull(7))
{
AccountEntity.REMARK = sqlRead.GetString(7);
}
if (!sqlRead.IsDBNull(8))
{
AccountEntity.FINANCESOFTCODE = sqlRead.GetString(8);
}
if (!sqlRead.IsDBNull(9))
{
AccountEntity.CREATEUSER = sqlRead.GetString(9);
}
if (!sqlRead.IsDBNull(10))
{
AccountEntity.CREATETIME = sqlRead.GetDateTime(10);
}
if (!sqlRead.IsDBNull(11))
{
AccountEntity.MODIFIEDUSER = sqlRead.GetString(11);
}
if (!sqlRead.IsDBNull(12))
{
AccountEntity.MODIFIEDTIME = sqlRead.GetDateTime(12);
}
AccountEntites.Add(AccountEntity);
}
}
catch (Exception execError)
{
throw execError;
}
}
return AccountEntites;
}
#endregion
#region 根据公司GID获取公司信息
///
/// 根据公司GID获取公司信息
///
///
///
public AccountEntity GetAccountByID(string strGid)
{
AccountEntity AccountEntity = null;
SqlParameter parm = new SqlParameter(PARM_Account_GID, SqlDbType.VarChar, 36);
parm.Value = strGid;
using (SqlDataReader sqlRead = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_Account_BYGID, parm))
{
try
{
while (sqlRead.Read())
{
AccountEntity = new AccountEntity();
if (!sqlRead.IsDBNull(0))
{
AccountEntity.GID = sqlRead.GetString(0);
}
if (!sqlRead.IsDBNull(1))
{
AccountEntity.LINKID = sqlRead.GetString(1);
}
if (!sqlRead.IsDBNull(2))
{
AccountEntity.CODENAME = sqlRead.GetString(2);
}
if (!sqlRead.IsDBNull(3))
{
AccountEntity.CURRENCY = sqlRead.GetString(3);
}
if (!sqlRead.IsDBNull(4))
{
AccountEntity.BANKNAME = sqlRead.GetString(4);
}
if (!sqlRead.IsDBNull(5))
{
AccountEntity.ACCOUNT = sqlRead.GetString(5);
}
if (!sqlRead.IsDBNull(6))
{
AccountEntity.SubjectCode = sqlRead.GetString(6);
}
if (!sqlRead.IsDBNull(7))
{
AccountEntity.REMARK = sqlRead.GetString(7);
}
if (!sqlRead.IsDBNull(8))
{
AccountEntity.FINANCESOFTCODE = sqlRead.GetString(8);
}
if (!sqlRead.IsDBNull(9))
{
AccountEntity.CREATEUSER = sqlRead.GetString(9);
}
if (!sqlRead.IsDBNull(10))
{
AccountEntity.CREATETIME = sqlRead.GetDateTime(10);
}
if (!sqlRead.IsDBNull(11))
{
AccountEntity.MODIFIEDUSER = sqlRead.GetString(11);
}
if (!sqlRead.IsDBNull(12))
{
AccountEntity.MODIFIEDTIME = sqlRead.GetDateTime(12);
}
}
}
catch (Exception execError)
{
throw execError;
}
}
return AccountEntity;
}
#endregion
#region 根据公司GID获取公司信息
///
/// 根据公司GID获取公司信息
///
///
///
public AccountEntity GetAccountTop1()
{
AccountEntity AccountEntity = null;
using (SqlDataReader sqlRead = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_Account_TOP1, null))
{
try
{
while (sqlRead.Read())
{
AccountEntity = new AccountEntity();
if (!sqlRead.IsDBNull(0))
{
AccountEntity.GID = sqlRead.GetString(0);
}
if (!sqlRead.IsDBNull(1))
{
AccountEntity.LINKID = sqlRead.GetString(1);
}
if (!sqlRead.IsDBNull(2))
{
AccountEntity.CODENAME = sqlRead.GetString(2);
}
if (!sqlRead.IsDBNull(3))
{
AccountEntity.CURRENCY = sqlRead.GetString(3);
}
if (!sqlRead.IsDBNull(4))
{
AccountEntity.BANKNAME = sqlRead.GetString(4);
}
if (!sqlRead.IsDBNull(5))
{
AccountEntity.ACCOUNT = sqlRead.GetString(5);
}
if (!sqlRead.IsDBNull(6))
{
AccountEntity.SubjectCode = sqlRead.GetString(6);
}
if (!sqlRead.IsDBNull(7))
{
AccountEntity.REMARK = sqlRead.GetString(7);
}
if (!sqlRead.IsDBNull(8))
{
AccountEntity.FINANCESOFTCODE = sqlRead.GetString(8);
}
if (!sqlRead.IsDBNull(9))
{
AccountEntity.CREATEUSER = sqlRead.GetString(9);
}
if (!sqlRead.IsDBNull(10))
{
AccountEntity.CREATETIME = sqlRead.GetDateTime(10);
}
if (!sqlRead.IsDBNull(11))
{
AccountEntity.MODIFIEDUSER = sqlRead.GetString(11);
}
if (!sqlRead.IsDBNull(12))
{
AccountEntity.MODIFIEDTIME = sqlRead.GetDateTime(12);
}
}
}
catch (Exception execError)
{
throw execError;
}
}
return AccountEntity;
}
#endregion
///
/// 插入信息
///
/// 实体类
/// 值为1插入数据正常,-1操作异常
public int InserInfo(AccountEntity infoEntity)
{
int iResult = 0;
//获取参数
SqlParameter[] parms = GetInsertParms();
parms[0].Value = infoEntity.GID;//惟一编号
parms[1].Value = infoEntity.LINKID;//公司关联id
parms[2].Value = infoEntity.CODENAME;//代码
parms[3].Value = infoEntity.CURRENCY;//币别
parms[4].Value = infoEntity.BANKNAME;//银行名称
parms[5].Value = infoEntity.ACCOUNT;//银行账户
parms[6].Value = infoEntity.SubjectCode;//科目代码
parms[7].Value = infoEntity.REMARK;//备注
parms[8].Value = infoEntity.CREATEUSER;//创建人gid
parms[9].Value = infoEntity.MODIFIEDUSER;//更新人gid
parms[10].Value = infoEntity.FINANCESOFTCODE;//
//parms[10].Value = infoEntity.MODIFIEDTIME;//更新时间
//parms[11].Value = infoEntity.CREATETIME;//创建时间
strSqlInsertInfo = String.Format(strSqlInsertInfo);
//
using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
int existVal = SqlHelper.ExecuteNonQuery(conn, CommandType.Text, strSqlInsertInfo, parms);
if (existVal > 0)
{
iResult = 1;
}
else
{
iResult = -1;//执行异常
}
}
return iResult;
}
///
/// 更新信息
///
/// 实体类
/// 值为1更新数据正常,-1操作异常
public int UpdateInfo(AccountEntity infoEntity)
{
int iResult = 0;
//获取参数
SqlParameter[] parms = GetUpdateParms();
parms[0].Value = infoEntity.GID;//惟一编号
parms[1].Value = infoEntity.LINKID;//公司关联id
parms[2].Value = infoEntity.CODENAME;//代码
parms[3].Value = infoEntity.CURRENCY;//币别
parms[4].Value = infoEntity.BANKNAME;//银行名称
parms[5].Value = infoEntity.ACCOUNT;//银行账户
parms[6].Value = infoEntity.SubjectCode;//科目代码
parms[7].Value = infoEntity.REMARK;//备注
parms[8].Value = infoEntity.MODIFIEDUSER;//更新人gid
parms[9].Value = infoEntity.FINANCESOFTCODE;//
//parms[9].Value = infoEntity.CREATEUSER;//创建人gid
//parms[10].Value = infoEntity.MODIFIEDTIME;//更新时间
//parms[11].Value = infoEntity.CREATETIME;//创建时间
//
//string strMODIFIEDTIME = infoEntity.MODIFIEDTIME.ToString().IndexOf("0001")>-1 ? "null" : "'" + infoEntity.MODIFIEDTIME.ToString() + "'";
//string strMODIFIEDTIME_name = "MODIFIEDTIME="; //strETA.Equals("") ? "" : "ETA=";
//
strSqlUpdateInfo = String.Format(strSqlUpdateInfo);//, strMODIFIEDTIME_name, strMODIFIEDTIME);
//
using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
int existVal = SqlHelper.ExecuteNonQuery(conn, CommandType.Text, strSqlUpdateInfo, parms);
if (existVal > 0)
{
iResult = 1;
}
else
{
iResult = -1;//执行异常
}
}
return iResult;
}
#region 生成插入语句参数
///
/// 生成插入语句参数
///
/// 返回SqlParameter数组
private SqlParameter[] GetInsertParms()
{
SqlParameter[] parms = new SqlParameter[]
{
new SqlParameter("@GID",SqlDbType.VarChar,36),//惟一编号
new SqlParameter("@LINKID",SqlDbType.VarChar,36),//公司关联id
new SqlParameter("@CODENAME",SqlDbType.VarChar,20),//代码
new SqlParameter("@CURRENCY",SqlDbType.VarChar,20),//币别
new SqlParameter("@BANKNAME",SqlDbType.VarChar,100),//银行名称
new SqlParameter("@ACCOUNT",SqlDbType.VarChar,40),//银行账户
new SqlParameter("@SubjectCode",SqlDbType.VarChar,20),//代码
new SqlParameter("@REMARK",SqlDbType.VarChar,100),//备注
new SqlParameter("@CREATEUSER",SqlDbType.VarChar,36),//创建人gid
new SqlParameter("@MODIFIEDUSER",SqlDbType.VarChar,36),//更新人gid
new SqlParameter("@FINANCESOFTCODE",SqlDbType.VarChar,20)//
//new SqlParameter("@MODIFIEDTIME",SqlDbType.datetime),//更新时间
//new SqlParameter("@CREATETIME",SqlDbType.datetime),//创建时间
};
return parms;
}
#endregion
#region 生成更新语句参数
///
/// 生成更新语句参数
///
/// 返回SqlParameter数组
private SqlParameter[] GetUpdateParms()
{
SqlParameter[] parms = new SqlParameter[]{
new SqlParameter("@GID",SqlDbType.VarChar,36),//惟一编号
new SqlParameter("@LINKID",SqlDbType.VarChar,36),//公司关联id
new SqlParameter("@CODENAME",SqlDbType.VarChar,20),//代码
new SqlParameter("@CURRENCY",SqlDbType.VarChar,20),//币别
new SqlParameter("@BANKNAME",SqlDbType.VarChar,100),//银行名称
new SqlParameter("@ACCOUNT",SqlDbType.VarChar,40),//银行账户
new SqlParameter("@SubjectCode",SqlDbType.VarChar,20),//代码
new SqlParameter("@REMARK",SqlDbType.VarChar,100),//备注
new SqlParameter("@MODIFIEDUSER",SqlDbType.VarChar,36),//更新人gid
new SqlParameter("@FINANCESOFTCODE",SqlDbType.VarChar,20)//
//new SqlParameter("@CREATEUSER",SqlDbType.VarChar,36),//创建人gid
//new SqlParameter("@MODIFIEDTIME",SqlDbType.DateTime),//更新时间
//new SqlParameter("@CREATETIME",SqlDbType.datetime),//创建时间
};
return parms;
}
#endregion
#region 返回数据集 公司表(Account)信息
///
/// 返回 公司表(Account)信息
///
///
public DataSet GetAccountSQL(string strSQL)
{
string str = "select * from [sys_bank] where 1=1 " + strSQL;
DataSet DS = SqlHelper.OpenSqlDataSet(SqlHelper.ConnectionStringLocalTransaction, str);
try
{
if (DS.Tables[0].Rows.Count <= 0)
{
DS = null;
}
}
catch
{
DS = null;
}
return DS;
}
#endregion
#region 返回数据集 公司表(Account)信息
/// 返回 公司表(Account)删除
///
///
///
public String GetAccountDel(string strGid, string strUserID)
{
string alt = "";
string str = "update sys_bank set ISDELETED=1 where Gid='" + strGid + "'";
bool bl = SqlHelper.ExecuteSqlCommand(SqlHelper.ConnectionStringLocalTransaction, str);
if (bl == false)
{
alt = "账户表(sys_bank)删除操作出错!";
return alt;
}
else
{
//string str1 = "insert into sys_log(NAME,LOGTYPE,LOGCONTENT,CREATEUSER) values('删除账户表(sys_bank)的信息','更新操作','" + str + "','" + strUserID + "')";
//bool bl1 = SqlHelper.ExecuteSqlCommand(SqlHelper.ConnectionStringLocalTransaction, str1);
}
return alt;
}
#endregion
///
/// 根据SQL语句查询账户数据集
///
///
///
public DataSet GetExcuteSql(string strSql)
{
DataSet userSet = new DataSet();
userSet = SqlHelper.ExecuteDataset(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, strSql);
return userSet;
}
#region 插入账户列表信息
///
/// 插入账户列表信息
///
/// 插入SQL语句组,将所有要执行的插入语句写入ArrayList,每个索引对应一条SQL语句,执行时需要遍历操作
/// 返回状态值 为1表示插入完成;为-1插入出现异常但未正确回滚事务;为-2插入异常,事务已经成功回滚;默认状态为0
public int InsertAccountFromGrid(ArrayList sqlList)
{
int result = 0;
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
for (int i = 0; i < sqlList.Count; i++)
{
string strUpdateSql = sqlList[i].ToString();
SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, strUpdateSql, null);
}
sqlTran.Commit();
result = 1;//状态为1表示插入成功
}
catch (Exception execError)
{
result = -1;//有异常,插入失败
sqlTran.Rollback();
result = -2;//插入异常,事务已回滚成功
throw execError;
}
finally
{
SqlHelper.CloseConnection();
}
}
return result;
}
#endregion
#region 更新账户列表信息
///
/// 更新账户列表信息
///
/// 更新SQL语句组,将所有要执行的更新语句写入ArrayList,每个索引对应一条SQL语句,执行时需要遍历操作
/// 返回状态值 为1表示更新完成;为-1更新出现异常但未正确回滚事务;为-2更新异常,事务已经成功回滚;默认状态为0
public int UpdateAccountFromGrid(ArrayList sqlList)
{
int result = 0;
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
for (int i = 0; i < sqlList.Count; i++)
{
string strUpdateSql = sqlList[i].ToString();
SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, strUpdateSql, null);
}
sqlTran.Commit();
result = 1;//状态为1表示更新成功
}
catch (Exception execError)
{
result = -1;//有异常,更新失败
sqlTran.Rollback();
result = -2;//更新异常,事务已回滚成功
throw execError;
}
finally
{
SqlHelper.CloseConnection();
}
}
return result;
}
#endregion
#region 通过关联编号LINKID与账户类型获取账户信息
///
/// 通过关联编号LINKID与账户类型获取账户信息
///
///
///
public AccountEntity GetAccountByLINKIDAndType(string strLINKID)
{
AccountEntity AccountEntity = null;
string strSql = " SELECT top 1 GID,LINKID,CODENAME,CURRENCY,BANKNAME,ACCOUNT,SubjectCode,REMARK,FINANCESOFTCODE,CREATEUSER,CREATETIME,MODIFIEDUSER,MODIFIEDTIME FROM sys_bank WHERE LINKID = '" + strLINKID + "'";
using (SqlDataReader sqlRead = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, strSql, null))
{
try
{
while (sqlRead.Read())
{
AccountEntity = new AccountEntity();
if (!sqlRead.IsDBNull(0))
{
AccountEntity.GID = sqlRead.GetString(0);
}
if (!sqlRead.IsDBNull(1))
{
AccountEntity.LINKID = sqlRead.GetString(1);
}
if (!sqlRead.IsDBNull(2))
{
AccountEntity.CODENAME = sqlRead.GetString(2);
}
if (!sqlRead.IsDBNull(3))
{
AccountEntity.CURRENCY = sqlRead.GetString(3);
}
if (!sqlRead.IsDBNull(4))
{
AccountEntity.BANKNAME = sqlRead.GetString(4);
}
if (!sqlRead.IsDBNull(5))
{
AccountEntity.ACCOUNT = sqlRead.GetString(5);
}
if (!sqlRead.IsDBNull(6))
{
AccountEntity.SubjectCode = sqlRead.GetString(6);
}
if (!sqlRead.IsDBNull(7))
{
AccountEntity.REMARK = sqlRead.GetString(7);
}
if (!sqlRead.IsDBNull(8))
{
AccountEntity.FINANCESOFTCODE = sqlRead.GetString(8);
}
if (!sqlRead.IsDBNull(9))
{
AccountEntity.CREATEUSER = sqlRead.GetString(9);
}
if (!sqlRead.IsDBNull(10))
{
AccountEntity.CREATETIME = sqlRead.GetDateTime(10);
}
if (!sqlRead.IsDBNull(11))
{
AccountEntity.MODIFIEDUSER = sqlRead.GetString(11);
}
if (!sqlRead.IsDBNull(12))
{
AccountEntity.MODIFIEDTIME = sqlRead.GetDateTime(12);
}
}
}
catch (Exception execError)
{
throw execError;
}
}
return AccountEntity;
}
#endregion
#region 通过账户GID删除单条账户
public int DeleteAccountByGid(string tempGid)
{
int result = 0;
SqlParameter parm = new SqlParameter(PARM_Account_GID, SqlDbType.VarChar, 36);
parm.Value = tempGid;
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_DELETE_Account_BY_GID, parm);
result = 1;//状态为1表示删除成功
sqlTran.Commit();
}
catch (Exception execError)
{
result = -1;//有异常,插入失败
sqlTran.Rollback();
result = -2;//插入异常,事务已回滚成功
throw execError;
}
finally
{
SqlHelper.CloseConnection();
}
}
return result;
}
#endregion
}
}