?? userinfoda.cs
字號:
?using System;
using System.Data;
using System.Text;
using System.Data.SqlClient;
/// <summary>
/// UserInfoDA 的摘要說明
/// </summary>
public class UserInfoDA
{
//定義常量表示字段名稱或SQL語句。
private const string SQL_INSERT_USERINFO = "INSERT INTO userinfo VALUES(@cityid,@gradeid,@stateid,@typeid, @username, @useraddress, @softversion, @linkman, @phone,@mail,@qq,@fax,@peopleamount)";
//private const string SQL_UPDATE_USERINFO = "update memberinfo set custname=@custname,custphone=@custphone,custaddress=@custaddress";
private const string PARM_USER_NAME = "@username";
private const string PARM_USER_ADDRESS = "@useraddress";
private const string PARM_USER_SOFTVERSION = "@softversion";
private const string PARM_USER_LINKMAN = "@linkman";
private const string PARM_USER_PHONE = "@phone";
private const string PARM_USER_MAIL = "@mail";
private const string PARM_USER_QQ = "@qq";
private const string PARM_USER_FAX = "@fax";
private const string PARM_USER_PEOPLEAMOUNT = "@peopleamount";
private const string PARM_USER_CITYID = "@cityid";
private const string PARM_USER_STATEID = "@stateid";
private const string PARM_USER_GRADEID = "@gradeid";
private const string PARM_USER_TYPEID = "@typeid";
private const string PARM_USER_CITY = "@city";
private const string PARM_USER_STATE = "@state";
private const string PARM_USER_GRADE = "@grade";
private const string PARM_USER_TYPE = "@type";
private const string SQL_SELECT_CITYNAME = "SELECT cityid FROM city WHERE cityname=@city";
private const string SQL_SELECT_STATENAME = "SELECT stateid FROM userstate WHERE statename=@state";
private const string SQL_SELECT_GRADENAME = "SELECT gradeid FROM usergrade WHERE gradename=@grade";
private const string SQL_SELECT_TYPENAME = "SELECT typeid FROM usertype WHERE typename=@type";
//private const string SQL_SELECT_BYSOFTVERSION = "";
public UserInfoDA()
{
}
/// <summary>
/// 添加客戶資料
/// </summary>
/// <param name="user">客戶資料實體</param>
/// <returns>添加是否成功</returns>
public bool InsertUser(UserInfoEntity user)
{
StringBuilder strSQL = new StringBuilder();
SqlParameter[] userParms = GetParameters();
SqlCommand cmd = new SqlCommand();
// 依次給實體參數(shù)賦值
userParms[0].Value = user.UserName;
userParms[1].Value = user.Address;
userParms[2].Value = user.SoftVersion;
userParms[3].Value = user.LinkMan;
userParms[4].Value = user.Phone;
userParms[5].Value = user.Mail;
userParms[6].Value = user.QQ;
userParms[7].Value = user.Fax;
userParms[8].Value = user.PeopleAmount;
//因為客戶資料表中存儲的是以下幾個屬性的ID
//所以必須通過名稱先獲取這幾個屬性的ID
//獲取城市的ID
int cityid = GetCityID(user.City);
//獲取用戶狀態(tài)的ID
int stateid = GetStateID(user.UserState);
//獲取用戶等級的ID
int gradeid = GetGradeID(user.UserGrade);
//獲取用戶業(yè)務類型的ID
int typeid = GetTypeID(user.UserType);
userParms[9].Value = cityid;
userParms[10].Value = stateid;
userParms[11].Value = gradeid;
userParms[12].Value = typeid;
//遍歷所有參數(shù),并將參數(shù)添加到SqlCommand命令中
foreach (SqlParameter parm in userParms)
cmd.Parameters.Add(parm);
//獲取數(shù)據(jù)庫的連接字符串
using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
strSQL.Append(SQL_INSERT_USERINFO);
//打開數(shù)據(jù)庫連接,執(zhí)行命令
conn.Open();
//設置Sqlcommand命令的屬性
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = strSQL.ToString();
//執(zhí)行添加的SqlCommand命令
int val = cmd.ExecuteNonQuery();
//清空SqlCommand命令中的參數(shù)
cmd.Parameters.Clear();
//判斷是否添加成功,注意返回的是添加是否成功,不是影響的行數(shù)
if (val > 0)
return true;
else
return false;
}
}
#region 私有方法-獲取ID
/// <summary>
/// 獲取城市ID的方法(私有方法)
/// </summary>
/// <param name="cityname">城市名稱</param>
/// <returns>該城市的ID</returns>
private int GetCityID(string cityname)
{
int cityid = 0;
//創(chuàng)建新參數(shù)并給參數(shù)賦值,用來指定城市名稱
SqlParameter parm = new SqlParameter(PARM_USER_CITY, SqlDbType.NVarChar, 20);
parm.Value = cityname;
//調(diào)用SqlHelper訪問組件的方法返回第一行第一列的值
cityid = (int)SqlHelper.ExecuteScalar(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_CITYNAME, parm);
return cityid;
}
/// <summary>
/// 獲取用戶狀態(tài)ID的方法(私有方法)
/// </summary>
/// <param name="cityname">用戶狀態(tài)名稱</param>
/// <returns>該狀態(tài)的ID</returns>
private int GetStateID(string statename)
{
int stateid = 0;
//創(chuàng)建新參數(shù)并給參數(shù)賦值,用來指定用戶狀態(tài)的名稱
SqlParameter parm = new SqlParameter(PARM_USER_STATE, SqlDbType.NVarChar, 20);
parm.Value = statename;
//調(diào)用SqlHelper訪問組件的方法返回第一行第一列的值
stateid = (int)SqlHelper.ExecuteScalar(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_STATENAME, parm);
return stateid;
}
/// <summary>
/// 獲取用戶等級ID的方法(私有方法)
/// </summary>
/// <param name="cityname">用戶等級名稱</param>
/// <returns>該等級的ID</returns>
private int GetGradeID(string gradename)
{
int gradeid = 0;
//創(chuàng)建新參數(shù)并給參數(shù)賦值,用來指定用戶等級的名稱
SqlParameter parm = new SqlParameter(PARM_USER_GRADE, SqlDbType.NVarChar, 20);
parm.Value = gradename;
//調(diào)用SqlHelper訪問組件的方法返回第一行第一列的值
gradeid = (int)SqlHelper.ExecuteScalar(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_GRADENAME, parm);
return gradeid;
}
/// <summary>
/// 獲取用戶業(yè)務類型ID的方法(私有方法)
/// </summary>
/// <param name="cityname">業(yè)務類型名稱</param>
/// <returns>該業(yè)務類型的ID</returns>
private int GetTypeID(string typename)
{
int typeid = 0;
//創(chuàng)建新參數(shù)并給參數(shù)賦值,用來指定用戶等級的名稱
SqlParameter parm = new SqlParameter(PARM_USER_TYPE, SqlDbType.NVarChar, 20);
parm.Value = typename;
//調(diào)用SqlHelper訪問組件的方法返回第一行第一列的值
typeid = (int)SqlHelper.ExecuteScalar(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_TYPENAME, parm);
return typeid;
}
#endregion
//#region 對客戶資料的查詢
/// <summary>
/// 通過軟件版本查詢
/// </summary>
/// <param name="softversion">軟件版本號</param>
/// <returns>數(shù)據(jù)集</returns>
//public SqlDataReader GetUsersBySoftVersion(string softversion)
//{
// SqlDataReader dr = new SqlDataReader();
// //創(chuàng)建新參數(shù)并給參數(shù)賦值,用來指定用戶狀態(tài)的名稱
// SqlParameter parm = new SqlParameter(PARM_USER_STATE, SqlDbType.NVarChar, 20);
// parm.Value = statename;
// //調(diào)用SqlHelper訪問組件的方法返回第一行第一列的值
// stateid = (int)SqlHelper.ExecuteScalar(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_STATENAME, parm);
// return stateid;
//}
//#endregion
private static SqlParameter[] GetParameters()
{
//將SQL_INSERT_USERINFO做為哈希表緩存的鍵值
SqlParameter[] parms = SqlHelper.GetCachedParameters(SQL_INSERT_USERINFO);
//首先判斷緩存是否已經(jīng)存在
if (parms == null)
{
//緩存不存在的情況下,新建參數(shù)列表
parms = new SqlParameter[] {
new SqlParameter(PARM_USER_NAME, SqlDbType.NVarChar,50),
new SqlParameter(PARM_USER_ADDRESS, SqlDbType.NVarChar, 100),
new SqlParameter(PARM_USER_SOFTVERSION, SqlDbType.NVarChar, 50),
new SqlParameter(PARM_USER_LINKMAN, SqlDbType.NVarChar, 20),
new SqlParameter(PARM_USER_PHONE, SqlDbType.NVarChar, 20),
new SqlParameter(PARM_USER_MAIL, SqlDbType.NVarChar, 20),
new SqlParameter(PARM_USER_QQ, SqlDbType.NVarChar, 20),
new SqlParameter(PARM_USER_FAX, SqlDbType.NVarChar, 20),
new SqlParameter(PARM_USER_PEOPLEAMOUNT, SqlDbType.Int),
new SqlParameter(PARM_USER_CITYID, SqlDbType.Int),
new SqlParameter(PARM_USER_STATEID, SqlDbType.Int),
new SqlParameter(PARM_USER_GRADEID, SqlDbType.Int),
new SqlParameter(PARM_USER_TYPEID, SqlDbType.Int)};
//將新建的參數(shù)列表添加到哈希表中緩存起來
SqlHelper.CacheParameters(SQL_INSERT_USERINFO, parms);
}
//返回參數(shù)數(shù)組
return parms;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -