?? cardtypeda.cs
字號:
?using System;
using System.Data;
using System.Text;
using System.Data.SqlClient;
/// <summary>
/// CardTypeDA 是專門用于訪問CardTypeEntity的方法
/// </summary>
public class CardTypeDA
{
//常量用來表示T-SQL語句中用到的變量名稱和T-SQL語句本身
private const string PARM_CARD_TYPENAME = "@cardtypename";
private const string PARM_CARD_RULE = "@cardrule";
private const string PARM_CARD_ID = "@cardid";
private const string SQL_SELECT_CARDRULE = "SELECT cardrule FROM cardtype WHERE cardtypename=@cardtypename";
private const string SQL_UPDATE_CARDTYPENAME = "UPDATE cardtype SET cardtypename=@cardtypename WHERE cardtypename=@oldname";
private const string SQL_UPDATE_CARDRULE = "UPDATE cardtype SET cardrule=@cardrule WHERE cardtypename=@cardtypename";
private const string SQL_INSERT_CARDTYPE = "INSERT INTO cardtype VALUES(@cardtypename,@cardrule)";
private const string SQL_SELECT_CARDNAME = "SELECT cardtypename FROM cardtype WHERE cardtypename=@cardtypename";
private const string SQL_SELECT_CARDID = "SELECT cardid FROM cardtype WHERE cardtypename=@cardtypename";
/// <summary>
/// 通過會員卡類型名稱更新積分規則
/// </summary>
/// <param name="cardtypename">會員卡類型名稱</param>
/// <returns>積分規則</returns>
public int GetCardRule(string cardtypename)
{
int cardrule=0;
//創建新參數并給參數賦值,用來指定會員卡類型名稱
SqlParameter parm = new SqlParameter(PARM_CARD_TYPENAME, SqlDbType.NVarChar, 20);
parm.Value = cardtypename;
//調用SqlHelper訪問組件的方法返回第一行第一列的值
cardrule = (int) SqlHelper.ExecuteScalar(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_CARDRULE, parm);
return cardrule;
}
/// <summary>
/// 更新卡積分規則
/// </summary>
/// <param name="cardtypename">卡類型名稱</param>
/// <param name="newrule">更新后的積分規則</param>
/// <returns>更新是否成功</returns>
public bool UpdateCardRule(CardTypeEntity mycarden)
{
//獲取參數列表
SqlParameter[] cardParms = GetParameters();
// 給參數賦值
cardParms[0].Value = mycarden.CardTypeName;
cardParms[1].Value = mycarden.CardRule;
//使用StringBuilder來連接字符串
StringBuilder strSQL = new StringBuilder();
SqlCommand cmd = new SqlCommand();
//遍歷參數列表并將參數添加到SqlCommand命令中
foreach (SqlParameter parm in cardParms)
cmd.Parameters.Add(parm);
using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
//在連接字符串中加入SQL語句
strSQL.Append(SQL_UPDATE_CARDRULE);
conn.Open();
cmd.Connection = conn;
//設定SqlCommand命令的屬性
cmd.CommandType = CommandType.Text;
cmd.CommandText = strSQL.ToString();
//執行SqlCommand命令的不返回結果集的方法
int val = cmd.ExecuteNonQuery();
//清空SqlCommand中的參數列表
cmd.Parameters.Clear();
//判斷如果并影響的行數大于0,則更新更新成功,否則失敗。
if (val > 0)
return true;
else
return false;
}
}
/// <summary>
/// 更新卡類型名稱
/// </summary>
/// <param name="oldname">舊名稱</param>
/// <param name="newname">新名稱</param>
/// <returns>更新是否成功</returns>
public bool UpdateCardTypeName(string oldname,string newname)
{
//首先判斷新的會員卡類型名稱是否已經存在
bool exits = GetCardType(newname);
int val=0;
//如果不存在,正常執行,如果存在,則val值不變,方法返回false。
if (exits)
{
//創建參數數組,并賦值。
//因為此方法中參數與會員卡類型實體的參數不同,不可以使用GetParameters方法獲取。
SqlParameter[] parms = new SqlParameter[]{
new SqlParameter(PARM_CARD_TYPENAME, SqlDbType.NVarChar, 20),
new SqlParameter("@oldname", SqlDbType.NVarChar, 20)};
parms[0].Value = newname;
parms[1].Value = oldname;
//執行SqlHelper中不返回結果集的方法
val = SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_UPDATE_CARDTYPENAME, parms);
}
if (val > 0)
return true;
else
return false;
}
/// <summary>
/// 添加卡類型
/// </summary>
/// <param name="mycard">卡類型實體</param>
public bool InsertCardType(CardTypeEntity mycard)
{
//首先判斷新的會員卡類型名稱是否已經存在
bool exits = GetCardType(mycard.CardTypeName);
//如果不存在,正常執行,如果存在,方法返回false。
if (exits)
{
StringBuilder strSQL = new StringBuilder();
//獲取添加卡類型的T-SQL語句的參數
SqlParameter[] cardParms = GetParameters();
SqlCommand cmd = new SqlCommand();
// 給參數賦值
cardParms[0].Value = mycard.CardTypeName;
cardParms[1].Value = mycard.CardRule;
//遍歷參數列表,并將參數添加進SqlCommand命令中
foreach (SqlParameter parm in cardParms)
cmd.Parameters.Add(parm);
//定義對象資源保存的范圍,一旦using范圍結束,將釋放對方所占的資源
using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
strSQL.Append(SQL_INSERT_CARDTYPE);
conn.Open();
//設定SqlCommand的屬性
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = strSQL.ToString();
//執行SqlCommand命令
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
if (val > 0)
return true;
else
return false;
}
}
else
return false;
}
/// <summary>
/// 獲取參數列表,因上面兩個方法用到了此方法,所以單獨列出。
/// </summary>
/// <param name="mycard">要執行的T-SQL語句</param>
/// <returns>返回參數集合</returns>
private static SqlParameter[] GetParameters()
{
//獲取key值為cardtype的緩存參數列表
SqlParameter[] parms = SqlHelper.GetCachedParameters("cardType");
//如果參數列表不存在
if (parms == null)
{
//新建參數列表
parms = new SqlParameter[] {
new SqlParameter(PARM_CARD_TYPENAME, SqlDbType.VarChar, 20),
new SqlParameter(PARM_CARD_RULE, SqlDbType.Int)};
//緩存新建的參數列表,并設置KEY值為cardtype。
SqlHelper.CacheParameters("cardType", parms);
}
return parms;
}
/// <summary>
/// 判斷會員卡類型名稱是否重復(僅為類內部調用,不公開)
/// </summary>
/// <param name="typename">會員卡類型名稱</param>
/// <returns>是否重復</returns>
private bool GetCardType(string typename)
{
//創建新參數并給參數賦值,用來指定會員卡類型名稱
SqlParameter parm = new SqlParameter(PARM_CARD_TYPENAME, SqlDbType.NVarChar, 20);
parm.Value = typename;
//調用SqlHelper訪問組件的方法返回第一行第一列的值
object obj = SqlHelper.ExecuteScalar(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_CARDNAME, parm);
//如果卡類型不存在返回true,如果存在返回false
if (obj == null)
return true;
else
return false;
}
/// <summary>
/// 獲取卡類型的ID
/// </summary>
/// <param name="cardtype">卡類型</param>
/// <returns>卡類型ID</returns>
public static int GetCardID(string cardtype)
{
int cardid = 0;
//創建新參數并給參數賦值,用來指定會員卡類型名稱
SqlParameter parm = new SqlParameter(PARM_CARD_TYPENAME, SqlDbType.NVarChar, 20);
parm.Value = cardtype;
//調用SqlHelper訪問組件的方法返回第一行第一列的值
cardid = (int)SqlHelper.ExecuteScalar(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_CARDID, parm);
return cardid;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -