我经常发现自己在桌子上进行了几次独立的连接.例如,假设我们有桌子collections,有独立的与两个一对N的关系photos和songs,其中N是从零到很多.
现在,假设我们希望得到一个集合,这两个公司(独立)相关联的照片和歌曲.
我通常会使用这样的东西:
SELECT
collections.collectionid as collectionid,
photos.name as photo_name,
songs.name as song_name
FROM collections
LEFT JOIN photos ON collections.collectionid = photos.collectionid
LEFT JOIN songs ON collections.collectionid = songs.collectionid
WHERE collections.collectionid = 14
Run Code Online (Sandbox Code Playgroud)
当然,将一个表左连接到另外两个表,如果第一个连接导致M行而第二个连接N成行,则给M * N出行.就数据库流量和性能而言,这似乎不是最理想的.
+--------------+------------+-----------+
| collectionid | photo_name | song_name |
+--------------+------------+-----------+
| 14 | 'x' | 'a' | \
| 14 | 'x' | 'b' | - Each photo is …Run Code Online (Sandbox Code Playgroud) 使用SQL Server/SSRS 2008.
使用SQL Server Profiler,我一直试图跟踪SSRS(rdl)报告生成调用到我的数据库的存储过程失败,即所以我可以看到传递了什么参数值等.
我应该寻找什么事件?
我已经和Java和C#合作了一段时间了,我已经多次问自己这个问题,但是我找不到我想要的答案.
当我必须调用一个对象方法(这意味着它不是静态的)时,我必须通过类的实例来调用,例如:
MyClass myInstance = new MyClass();
myInstance.nonStaticMethod();
Run Code Online (Sandbox Code Playgroud)
我到处都看到这种代码,所以我在考虑一线调用(下面的例子)是否表现出不同的性能,或者仅仅是标准的缘故?
这就是我用单线呼叫的意思:
new MyClass().nonStaticMethod();
Run Code Online (Sandbox Code Playgroud) 如果集合的名称出现在由cref属性引用的方法描述中,则ReSharper无法解析该集合的名称.
例如,在这个签名中,ReSharper强调了这个词Dictionary:
/// <summary>
/// The reconstruct in single account.
/// </summary>
/// <param name="programId">
/// The program id.
/// </param>
/// <returns>
/// The <see cref="Dictionary"/>. // <-- here the "Dictionary" is underlined
/// </returns>
Dictionary<long, Account> ReconstructInSingleAccount(long programId)
{
}
Run Code Online (Sandbox Code Playgroud)
当我将鼠标悬停在突出显示的区域时Cannot resolve symbol 'Dictionary'.该文件有一个引用System.Collections.Generic.同样的事情发生IEnumerable在List.
它对代码没有任何影响,不会阻止编译或任何东西.我仍然希望保持我的文件清理,我不认为ReSharper首先应该在注释中解析名称时遇到问题.
我正在使用ReSharper 8.0.任何建议如何解决这个或如何更改我的意见,以摆脱这个"未解决"的警告高度赞赏.
为了简单起见,我有以下字典,我为每个字符串键填充了未知数量的字符串.我还有以下字符串列表.
var dict = new Dictionary<string, List<string[]>>();
IList<string> headerList = new List<string>();
Run Code Online (Sandbox Code Playgroud)
如何检查列表中的字符串是否是字典中的值?我的数据看起来与此类似:
Key Value
----- ------------------
Car honda, volks, benz
Truck chevy, ford
Run Code Online (Sandbox Code Playgroud)
我需要检查"honda"是否包含在字典值中.我想我需要做类似以下的事情来查看值是否包含列表,其中包含有问题的字符串.请记住,我对C#还不熟悉.
foreach (string header in headerList)
{
// This is wrong, I don't know what to put in the if statement
if (dict.ContainsValue(r => r.Contains(header)))
{
// do stuff
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Web API 客户端库使用 Web 服务。我的问题是,当提交函数使用 POST 方法时,ReadAsAsync 似乎不想完全取消返回的对象。
如果我将响应作为字符串并手动 deserailize 它工作。(我收到一个 apmsgMessage,其中填充了所有字段)
HttpClient client = GetClient();
var response = client.PostAsJsonAsync("api/robot/Preview", ad).Result;
var msg = response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<apmsgMessage>(msg.Result);
Run Code Online (Sandbox Code Playgroud)
我最初尝试了下面的代码,它返回一个 apmsgMessage 对象,但所有字段都为空。
HttpClient client = GetClient();
var response = client.PostAsJsonAsync("api/robot/Preview", ad).Result;
var msg = response.Content.ReadAsAsync<apmsgMessage>().Result;
return msg;
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么我的原始(PostAsJsonAsync)不返回完全填充的 apmsgMessage。我在 ReadAsAsync 上做错了什么吗?
当我们在数据库中有一些计算列用于报告时,这是在SSRS报告开发的情况下计算它的值的最佳方法.
如果我复制这个问题,那么对不起,但谷歌搜索时没有得到正确答案.
我有问题使我的通用InMemoryColumn<T>序列化.它抱怨'Encodable'和'Decodable'特性是私密的,但我认为它在这里是公开的.我如何实现这些特征,以便我可以编码和解码底层Vec<T>.
这是导入的代码:
extern crate bincode;
extern crate libc;
extern crate "rustc-serialize" as rustc_serialize;
use rustc_serialize::serialize::{Encodable,Decodable};
//import other libs
pub struct InMemoryColumn<T> {
name: String,
data: Vec<T>,
}
impl<T: Eq + Ord + Hash + Encodable + Decodable> InMemoryColumn<T> {
fn save(&self, tbl_name: &str) {
//encode self.data and write to disk
}
fn load(path: &str, name: &str) -> Result<InMemoryColumn<T>,String> {
//decode from disk and populate InMemoryColumn<T>
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用NSRegularExpression进行简单的正则表达式匹配,但是当源包含多字节字符时,我遇到了一些匹配字符串的问题:
let string = "D 9"
// The following matches (any characters)(SPACE)(numbers)(any characters)
let pattern = "([\\s\\S]*) ([0-9]*)(.*)"
let slen : Int = string.lengthOfBytesUsingEncoding(NSUTF8StringEncoding)
var error: NSError? = nil
var regex = NSRegularExpression(pattern: pattern, options: NSRegularExpressionOptions.DotMatchesLineSeparators, error: &error)
var result = regex?.stringByReplacingMatchesInString(string, options: nil, range: NSRange(location:0,
length:slen), withTemplate: "First \"$1\" Second: \"$2\"")
Run Code Online (Sandbox Code Playgroud)
上面的代码按预期返回"D"和"9"
如果我现在更改第一行以包含英国"英镑"货币符号,如下所示:
let string = "£ 9"
Run Code Online (Sandbox Code Playgroud)
然后匹配不起作用,即使([\\s\\S]*)表达式的部分仍然匹配任何前导字符.
我知道£符号将占用两个字节,但通配符前导匹配应该忽略那些不应该吗?
有人能解释一下这里发生了什么吗?