小编kaw*_*fan的帖子

在.Net中使用ObjectCache缓存对象,并具有到期时间

我陷入困境.我的代码如下:

更新:它不是关于如何使用数据缓存,我已经在使用它和它的工作,它关于扩展它所以该方法不会在到期时间之间调用和从外部源获取新数据

object = (string)this.GetDataFromCache(cache, cacheKey);

if(String.IsNullOrEmpty(object))
{
  // get the data. It takes 100ms
  SetDataIntoCache(cache, cacheKey, object, DateTime.Now.AddMilliseconds(500));
}
Run Code Online (Sandbox Code Playgroud)

因此,如果项目过期,用户点击缓存并从中获取数据并从服务中获取数据并保存以防万一,问题是,当有待处理的请求(请求正在进行)时,服务发送另一个请求,因为对象已过期.在最后,应该有最多2-3个呼叫/秒,并且每秒有10-20个呼叫到外部服务.

有没有最佳的方法来做到这一点所以请求时间之间没有冲突,然后创建自己的自定义类与数组和时间戳等?

顺便说一下缓存的保存代码是 -

private void SetDataIntoCache(ObjectCache cacheStore, string cacheKey, object target, DateTime slidingExpirationDuration)
{
  CacheItemPolicy cacheItemPolicy = new CacheItemPolicy();

  cacheItemPolicy.AbsoluteExpiration = slidingExpirationDuration;
  cacheStore.Add(cacheKey, target, cacheItemPolicy);
}
Run Code Online (Sandbox Code Playgroud)

.net c# wcf caching asmx

10
推荐指数
2
解决办法
6029
查看次数

在WinForms之间传递连续数据

我正在制作个人WinForms应用程序.在我的场景中说我有一个C#Form1.Form1不断从互联网上获取实时Exchange数据.现在我点击一个按钮Form1然后Form2打开.现在我想从一些值Form1Form2.

我有一个计时器Form2,可以收集数据,Form1但如何?

我曾尝试使用属性但不能这样做,因为它只更新一次,就像我们初始化Form2时一样.

有解决方案吗

另外,如果不同时创建类的两个表单,如何将它的单个实例传递给它们?

.net c# winforms

2
推荐指数
1
解决办法
3003
查看次数

SUM的多个不同值

我有一个数据就像的表

userID      name        amount   Date
     1        mark        20     22-10
     1        mark        30     22-10
     2        kane        50     22-12  
     2        kane        60     22-12
     3        mike        60     22-10 
Run Code Online (Sandbox Code Playgroud)

使用userID +用户名+日期的组合,日期是唯一的

但由于其超过100k的记录,可能会有重复的日期记录,但其他用户ID和名称都没有

现在我想输出像

userID      name        amount    Date
     1        mark        50      22-10
     2        kane        110     22-12 
     3        mike        60      22-10
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用ID,名称,总和(金额),日期,它返回多行并回答错误

我尝试了各种distict和SUM等组合,但没有成功任何解决方案谢谢

sql sql-server stored-procedures

1
推荐指数
1
解决办法
4735
查看次数

使用存储过程在数据库中插入列表记录

我有一个使用存储过程插入SQL Server数据库的记录列表.目前我这样做,但还有更好的方法吗?

我在应用程序的高峰时段每秒插入100-200行.存储过程仅获取值并插入新行

    public void InsertRecords(List<stRecord> records)
    {
        foreach (var item in records)
        {
            if (CheckforDuplicateRecord(item) == false)
            {
                using (con = new SqlConnection(connectionString))
                {
                    con.Open();

                    SqlCommand cmd = new    SqlCommand(StoredProcedures.Service_Insert_record.ToString(), con);
                    cmd.CommandType = CommandType.StoredProcedure;

                    cmd.Parameters.Add("@item1", SqlDbType.NChar);
                    cmd.Parameters.Add("@item2", SqlDbType.NChar);

                    cmd.Parameters[0].Value = item.localUsername;
                    cmd.Parameters[1].Value = item.BetfairUsername;


                    try
                    {
                        cmd.ExecuteNonQuery();
                    }
                    catch (Exception exp)
                    {
                        throw exp;
                    }
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

sql-server stored-procedures list sqlclient winforms

1
推荐指数
1
解决办法
3097
查看次数

标签 统计

.net ×2

c# ×2

sql-server ×2

stored-procedures ×2

winforms ×2

asmx ×1

caching ×1

list ×1

sql ×1

sqlclient ×1

wcf ×1