1. Cache类使用
using System;
using System.Runtime.Caching;
namespace K3Login.Helper
{
public class CacheHelper
{
MemoryCache cache = new MemoryCache("MyCache");
/// <summary>
/// 获取缓存项的值
/// </summary>
/// <param name="strkey"></param>
/// <returns></returns>
public object GetKey(string strkey)
{
if (IsExists(strkey))
return cache.Get(strkey);
return null;
}
/// <summary>
/// 添加一个缓存项
/// </summary>
public void SetKey(string strkey, object obj, int minutes = 30)
{
RemoveKey(strkey);
cache.Add(strkey, obj, DateTimeOffset.Now.AddMinutes(minutes));
}
/// <summary>
/// 删除缓存项
/// </summary>
/// <param name="strkey"></param>
public void RemoveKey(string strkey)
{
if (IsExists(strkey)) cache.Remove(strkey);
}
/// <summary>
/// 判断缓存项是否存在
/// </summary>
/// <param name="strkey"></param>
/// <returns></returns>
private bool IsExists(string strkey)
{
return cache.Contains(strkey);
}
}
}
2.执行存储过程,并接受返回值
SqlParameter[] parms = {
new SqlParameter("@FirstLevel", FirstLevel),
new SqlParameter("@SecondLevel", SecondLevel),
new SqlParameter("@ThirdLevel", ThirdLevel),
new SqlParameter("@FourthLevel", FourthLevel),
new SqlParameter("@LJBM", LJBM),
new SqlParameter("@txtBox1", txtBox1),
new SqlParameter("@DataType", DataType),
new SqlParameter("@CREATOR", UserName),
new SqlParameter("@return", SqlDbType.VarChar, 50)
};
parms[8].Direction = ParameterDirection.Output;
DataTable dt = OneDataTable("Pro_NewJJMaterial", parms);
var result = parms[8].Value.ToString();
/// <summary>
/// 数据库操作类
/// </summary>
/// <param name="procedureName"></param>
/// <param name="parms"></param>
/// <returns></returns>
private DataTable OneDataTable(string procedureName, SqlParameter[] parms)
{
DataTable dt = new DataTable();
try
{
if (conn.State == 0) conn.Open();
using (SqlCommand myCommand = new SqlCommand())
{
myCommand.CommandTimeout = 180;
myCommand.Connection = conn;
myCommand.CommandText = procedureName;
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.Parameters.Clear();
foreach (SqlParameter parm in parms)
{
myCommand.Parameters.Add(parm);
}
using (SqlDataAdapter sda = new SqlDataAdapter(myCommand))
{
sda.Fill(dt);
}
myCommand.Dispose();
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
if (conn != null)
conn.Close();
}
return dt;
}