任何人都可以帮助我,以下工作在我的XP上工作正常但不是我的vista机器.我正在查询通用字典.
两台计算机都有.NET 3.5 + SP1,3.0,2.0等,并且Web项目的目标是3.5 Framework.
using System.Linq;
string val = "Test";
var d = DictionaryOfStuff().Where(n => n.Key.ToLower().Contains(val.ToLower()));
Run Code Online (Sandbox Code Playgroud)
给我错误:CS1525:无效的表达式术语'>'
我可以在Vista上目前存在的项目运行此,我已经IIS配置为使用.NET 2.0和VS的项目定位于3.5我甚至尝试添加这web.config中,它编译罚款W/O任何的λ/ LINQ
如何判断远程消息队列是否存在?该文档指出"存在"方法不适用于远程计算机.
以下是无效的(我知道队列路径是准确的,因为我能够将消息发送到队列):
if (!MessageQueue.Exists(@"FormatName:Direct=TCP:192.168.2.58\Private$\MyQueue"))
throw new InvalidOperationException("Queue does not exist");
问题是将消息发送到其后没有侦听队列的网络地址不会导致异常.为无效的队列地址抛出异常对我们的应用程序至关重要.
我想执行命令行工具来处理数据.它不需要阻止.我希望它是低优先级.所以我写了下面的内容
Process app = new Process();
app.StartInfo.FileName = @"bin\convert.exe";
app.StartInfo.Arguments = TheArgs;
app.PriorityClass = ProcessPriorityClass.BelowNormal;
app.Start();
Run Code Online (Sandbox Code Playgroud)
但是,我得到一条System.InvalidOperationException消息"没有进程与此对象关联." 为什么?如何以低优先级正确启动此应用程序?
没有这条线app.PriorityClass = ProcessPriorityClass.BelowNormal;,应用运行正常.
我想知道列出一个数字的所有整数因子的最佳方法,给出它的素因子及其指数的字典.
例如,如果我们有{2:3,3:2,5:1}(2 ^ 3*3 ^ 2*5 = 360)
那么我可以写:
for i in range(4):
for j in range(3):
for k in range(1):
print 2**i * 3**j * 5**k
Run Code Online (Sandbox Code Playgroud)
但在这里,我有3个可怕的循环.是否可以将此抽象为一个函数,给定任何因子分解作为字典对象参数?
我在SQL Server 2005数据库上有一个存储过程,它有一个这样的语句:
IF @Condition = 0
BEGIN
RAISERROR('some error message',16,1)
RETURN
END
Run Code Online (Sandbox Code Playgroud)
它是从C#客户端调用的,如下所示:
try
{
SomeVariable = SqlHelper.ExecuteScalar(GetConnectionString(), "MySP", new object[] { param1, param2});
}
catch (SqlException e)
{
Console.WriteLine(e.Message);
}
Run Code Online (Sandbox Code Playgroud)
然而,没有例外被提出.SP中的条件始终适用于测试.为了验证这一点,我从SQL Server Profiler复制了调用并在查询窗口中执行了它,并且打印了ErrorMessage,这意味着引发了错误.
不确定发生了什么.
ASP.NET/C#3.0
我有一个具有以下签名的方法:
public static void SendEmail(string sFrom,string sSubject,string sBody,params string [] sAddresses)
我需要遍历检查column2值的数据集.如果column2的值为True,则应将column1的字符串值添加到sAddresses字符串[].
我知道的唯一方法是在每次迭代时调整字符串[] +1的大小.这听起来效率不高.雪莉有一个更好的方法.
谢谢!凯文
进入WPF自定义控件的世界,想知道设计HexGrid控件的最佳方法是什么?想一想您最喜欢的桌面战争游戏;或者,同样可能是您最喜欢的视频游戏,它从台式战争游戏的悠久历史中窃取了设计。
基础模型公开了一种重要的方法,作为Map类的一部分:
Hex GetHex(int x, int y, int z)*;
Run Code Online (Sandbox Code Playgroud)
十六进制包含所有相关数据(目前,地形枚举将1:1映射到背景颜色;从小开始...)。
可能相关的限制:
地图的大小不会更改,并且十六进制数据会在非常可预测的时间发生更改(始终直接响应用户操作)。
理想情况下,该组件将扩展以干净地填充其容器,并可以直接在XAML中声明。
我正在寻找的是构建此应用所需的草图,而不是现成的组件。
*我虽然对这个寻址方案非常聪明,但是显然我来晚了。
好的,基于我问的最后一个问题,Mysql如何处理以下代码中的where语句:
DELIMITER ;//
DROP PROCEDURE IF EXISTS `test`;//
CREATE PROCEDURE `test`
(
id INT
)
BEGIN
SELECT *
FROM some_table
WHERE id = id;
END;//
Run Code Online (Sandbox Code Playgroud)
在这种情况下MySQL会做什么?它是否将where子句视为
some_table.id = id
Run Code Online (Sandbox Code Playgroud)
或者它是否像对待它一样
some_table.id = some_table.id
Run Code Online (Sandbox Code Playgroud)
现在我正在做类似的事情
WHERE id = @id
Run Code Online (Sandbox Code Playgroud)
因为我不知道MySQL中有会话变量而且它没有抱怨,我认为这是一种明确的方式来说"这个列等于这个变量".
有些人可能会说"呃..当然它把它当作列=变量",但我可以很容易地说"变量=列".那怎么处理呢?
我的PHP应用程序有一个可以导入记录的导入脚本.
目前,它是从CSV文件导入的.它正在读取CSV文件的每一行,使用fgetcsv一次一行,并且对于每一行,它在该记录上进行大量处理,包括数据库查询,然后继续下一行.它不应该继续累积更多的内存.
在导入大约2500条记录之后,PHP死了,说它已超过其内存限制(132 MB左右).
CSV文件本身只有几个megs - 发生的其他处理会进行大量的字符串比较,差异等.我有大量的代码在运行它并且很难想出一个'最小的再现样品'.
找到并解决这个问题有哪些好方法?
发现问题的原因
我有一个调试类,它在运行时记录我的所有数据库查询.因此,那些长约30KB的SQL字符串留在内存中.我意识到这不适合设计为长时间运行的脚本.
可能还有其他内存泄漏源,但我很确定这是我的问题的原因.
int x;
int iHateDataRows = dt.Rows.Count + 2;
System.Data.DataRow[] dra = new System.Data.DataRow[1000];
for(x = 0; x < iHateDataRows; ++x)
Run Code Online (Sandbox Code Playgroud)
所以,这显然是一个循环但是,我的问题是++x告诉我它无法访问.我不知道这是不是我的IDE变得疯狂或者什么(我使用SharpDevelop,主要是因为VS2008太笨重而且没有我喜欢的整洁的小功能.)
我希望我提供足够的信息让某人猜测问题.我盯着这个东西,改变了变数.一切,它都不会让步.
编辑:
这是在for循环之后:
if(dra[x].ItemArray[2].ToString() == "0")
{
return x.ToString();
}
else
{
return "Fail";
}
Run Code Online (Sandbox Code Playgroud)
我当然希望这段代码是正确的,因为我从来没有测试过它.
c# ×5
.net ×1
algorithm ×1
asp.net ×1
for-loop ×1
linq ×1
memory-leaks ×1
msmq ×1
mysql ×1
php ×1
process ×1
python ×1
sharpdevelop ×1
shellexecute ×1
sql-server ×1
variables ×1
wpf ×1