小弟初学三层结构,对于三层结构之间的调用问题还是很不明白,特来讨教!
程序如下:SQLServerDAL层有两个类,SysUser、SQLHelper,代码如下://SQLHelper类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using System.Configuration;namespace HUALUDISC.SQLServerDAL
{
public abstract class SQLHelper
{
//数据库连接字符串
public static readonly string Con = System.Configuration.ConfigurationSettings.AppSettings["SQLServer"]; //用于缓存参数的HASH表
private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable()); private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
{
if (conn.State != ConnectionState.Open)
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
if (trans != null)
cmd.Transaction = trans; cmd.CommandType = cmdType; if (cmdParms != null)
{
foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
} public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
int val=cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}}//SysUser类
namespace HUALUDISC.SQLServerDAL
{
public class SysUser : ISysUser
{
private ArrayList arrSysUser; public SysUser()
{
arrSysUser=new ArrayList();
} private const string SQL_SELECT="Select * From [SysUser] Order by [所在部门] ";
private const string SQL_CHECK_UserLogin="Select * From [SysUser] Where [所在部门]=@Department, [用户名]=@UserName, [密码]=@Password ";
private const string SQL_SELECT_ID = "Select * From [SysUser] Where [ID]=@ID"; private const string PARM_ID="@ID";
private const string PARM_UserName="@UserName";
private const string PARM_UserAllName="@UserAllName";
private const string PARM_Descript="@Descript";
private const string PARM_Department="@Department";
private const string PARM_Password="@password";
private const string PARM_Role="@Role";
private const string PARM_Status="@Status"; public int SysUserLogin(string Department, string UserName, string Password)
{
//这里添加代码实现SQLHelper类里的ExecuteNonQuery()方法实现用户的登陆验证,我想用存储过程,如何实现啊??????
}
}
}
程序如下:SQLServerDAL层有两个类,SysUser、SQLHelper,代码如下://SQLHelper类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using System.Configuration;namespace HUALUDISC.SQLServerDAL
{
public abstract class SQLHelper
{
//数据库连接字符串
public static readonly string Con = System.Configuration.ConfigurationSettings.AppSettings["SQLServer"]; //用于缓存参数的HASH表
private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable()); private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
{
if (conn.State != ConnectionState.Open)
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
if (trans != null)
cmd.Transaction = trans; cmd.CommandType = cmdType; if (cmdParms != null)
{
foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
} public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
int val=cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}}//SysUser类
namespace HUALUDISC.SQLServerDAL
{
public class SysUser : ISysUser
{
private ArrayList arrSysUser; public SysUser()
{
arrSysUser=new ArrayList();
} private const string SQL_SELECT="Select * From [SysUser] Order by [所在部门] ";
private const string SQL_CHECK_UserLogin="Select * From [SysUser] Where [所在部门]=@Department, [用户名]=@UserName, [密码]=@Password ";
private const string SQL_SELECT_ID = "Select * From [SysUser] Where [ID]=@ID"; private const string PARM_ID="@ID";
private const string PARM_UserName="@UserName";
private const string PARM_UserAllName="@UserAllName";
private const string PARM_Descript="@Descript";
private const string PARM_Department="@Department";
private const string PARM_Password="@password";
private const string PARM_Role="@Role";
private const string PARM_Status="@Status"; public int SysUserLogin(string Department, string UserName, string Password)
{
//这里添加代码实现SQLHelper类里的ExecuteNonQuery()方法实现用户的登陆验证,我想用存储过程,如何实现啊??????
}
}
}
解决方案 »
- 继承自System.ComponentModel.Component转为System.Windows.Forms.Control
- 怎么设计淘宝数据库《详细文档》
- 串口通信问题,一打开端口,时常读到无效垃圾数据。。。
- repeater输出两行两列数据
- 如何得到DataTable的索引值
- (winform)怎样用编程的方式解除控件的简单绑定?
- C# WMI 监视系统日志
- 急,请问那位朋友知道广东开平帛汉电子公司的情况,请告知,谢谢!
- A(a,b,c) a为key,B(x,b,c) x为key,现将表A的记录集插入B表中的SQL语句如何写:
- 提供vs.net 2003 简体中文版正式版及movie下载
- 么在WinFrom中上传图片
- c#问题
你那两个类一个是sql类,一个是访问类
{
SqlParameter[] parms = new SqlParameter[]
{
new SqlParameter("@Popedom",SqlDbType.VarChar,50),
new SqlParameter("@AccountID",SqlDbType.Int,4)
};
parms[0].Value =pPopedom;
parms[1].Value =user.AccountID; try
{
int popedomCount = (int)SQLHelper.ExecuteScalar(SQLHelper.SQLHelper_SqlConn, CommandType.StoredProcedure, "SYS_CheckControlPopedom", parms); if(popedomCount>0)
{
return true;
}
else
{
return false;
}
}
catch
{
throw;
}
}