小编Tom*_*röm的帖子

.NET Compact Framework中带有POST参数的异步WebRequest

我正在尝试在.NET Compact Framework上执行异步HTTP(S)POST,但我似乎无法使其正常工作.

这是我正在做的事情:

private void sendRequest(string url, string method, string postdata) {
    WebRequest rqst = HttpWebRequest.Create(url);
    CredentialCache creds = new CredentialCache();
    creds.Add(new Uri(url), "Basic", new NetworkCredential(this.Uname, this.Pwd));
    rqst.Credentials = creds;
    rqst.Method = method;
    if (!String.IsNullOrEmpty(postdata)) {
        rqst.ContentType = "application/xml";
        byte[] byteData = UTF8Encoding.UTF8.GetBytes(postdata);
        rqst.ContentLength = byteData.Length;
        using (Stream postStream = rqst.GetRequestStream()) {
            postStream.Write(byteData, 0, byteData.Length);
            postStream.Close();
        }
    }
    ((HttpWebRequest)rqst).KeepAlive = false;
    rqst.BeginGetResponse(DataLoadedCB, rqst);
}

private void DataLoadedCB(IAsyncResult result) {
    WebRequest rqst = ((WebRequest)(((BCRqst)result.AsyncState).rqst));
    WebResponse rsps = rqst.EndGetResponse(result);

    /* ETC...*/ …
Run Code Online (Sandbox Code Playgroud)

.net c# compact-framework

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

Mysql:从子查询中按最大N值排序

我准备好了.

前言:我想用任何N做这个工作,但为了简单起见,我将N设置为3.

我有一个查询(特别是MySQL)需要从表中提取数据并根据该表中的前3个值进行排序,然后再回退到其他排序条件.

所以基本上我有这样的东西:

SELECT tbl.id 
FROM
  tbl1 AS maintable 
  LEFT JOIN 
  tbl2 AS othertable 
  ON
  maintable.id = othertable.id
ORDER BY 
  othertable.timestamp DESC, 
  maintable.timestamp DESC
Run Code Online (Sandbox Code Playgroud)

这是所有基本的教科书.但问题是我需要第一个ORDER BY子句才能获得othertable.timestamp中的三个最大值,然后回退到maintable.timestamp.

另外,执行LIMIT 3子查询以进行其他操作并加入它是不行的,因为这需要处理应用于维护的任意数量的WHERE条件.

我几乎能够使用这样的基于用户变量的方法,但它失败了,因为它没有考虑到排序,因此它将获得它找到的第一个三个其他值:

ORDER BY 
  (
    IF(othertable.timestamp IS NULL, 0, 
      IF(
        (@rank:=@rank+1) > 3, null, othertable.timestamp
      )
    )
  ) DESC
Run Code Online (Sandbox Code Playgroud)

(声明前面有@rank:= 0)

那么......有关于此的任何提示吗?我对这个问题失去了理智.我对此的另一个参数是,因为我只是在改变现有的(非常复杂的)查询,所以我不能执行包装外部查询.另外,如上所述,我使用MySQL,因此任何使用ROW_NUMBER函数的解决方案都是不可及的.

感谢所有提前.

编辑.这里有一些带有时间戳的示例数据,这些数据简化为更简单的整数,以说明我需要的内容:

maintable

id      timestamp
1       100
2       200
3       300
4       400
5       500
6       600

othertable

id     timestamp
4      250
5      350
3      550
1      700

=>

1 …
Run Code Online (Sandbox Code Playgroud)

mysql sql

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

在C#中查询SQL日期

假设我有一个带有Date列的表.在我的C#应用​​程序中,我希望能够使用DateTime列上的LIKE运算符查询行.我的问题是,我该如何处理区域设置?

例如,如果当前区域设置设置为de-DE,则窗口的日期格式为dd.mm.yyyy.现在,用户可能会输入%2009之类的内容,从而产生以下查询:

select * from MyTable where to_char(MyDateColumn, 'dd.MM.yyyy') like '%2009'
Run Code Online (Sandbox Code Playgroud)

但是使用不同的区域设置,用户的输入当然会有所不同,因此to_char不再起作用.

我该如何解决这个问题?哦,我正在寻找一个独立于数据库的解决方案.

提前谢谢了!

sql database

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

标签 统计

sql ×2

.net ×1

c# ×1

compact-framework ×1

database ×1

mysql ×1