小编Jez*_*ark的帖子

如何从C#中的Form返回一个值?

我有一个主窗体(让我们称之为frmHireQuote),它是主MDI窗体(frmMainMDI)的子窗口,当单击一个按钮时,它通过ShowDialog()显示另一个窗体(frmImportContact).

当用户在frmImportContact上单击"确定"时,我想将一些字符串变量传递回frmHireQuote上的某些文本框.

请注意,可能有多个frmHireQuote实例,显然重要的是我回到调用此frmImportContact实例的实例.

这样做的最佳方法是什么?

.net c# parameter-passing winforms

175
推荐指数
3
解决办法
23万
查看次数

SQL返回表的前两列

没有知道字段名称的情况下,是否有任何SQL术语可以返回columns表格的前两个?

就像是

SELECT Column(1), Column(2) FROM Table_Name
Run Code Online (Sandbox Code Playgroud)

或者我是否需要走很长的路才能找到列名?我该怎么办?

sql sql-server-2008

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

c#执行一个字符串作为代码......值得努力吗?

这是迄今为止的故事:

我正在做一个C#winforms应用程序,以方便指定租用报价的设备.

在其中,我有List<T>~1500个库存商品.

这些项目具有一个名为的属性AutospecQty,该属性具有get需要执行某些特定于每个项目的代码的访问者.此代码将引用列表中的各种其他项.

因此,例如,一个项目(让我们称之为Item0001)有这个get访问器,可能需要执行一些看起来像这样的代码:

[some code to get the following items from the list here]

if(Item0002.Value + Item0003.Value > Item0004.Value)
{ return Item0002.Value }
else
{ return Item0004.Value }
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但这些代码可能每周都会改变,所以我试图避免经常重新部署.此外,每个项目可能(将)具有完全不同的代码.有些人会查询列表,有些人会做一些长屁股数学函数,有些会像上面那样简单加法......有些将取决于列表中未包含的变量.

我想要做的是将每个项目的代码存储在我的数据库的表中,然后当应用程序启动时,只需将相关代码拉出并将其打包到列表中,随时可以执行.

我在internot上看到的关于执行字符串作为代码的大多数例子看起来都很冗长,令人费解,和/或不是特别新手编码器友好(我是一个完全的业余爱好者),并且似乎没有采取考虑被传递的变量.

所以问题是:

  1. 有没有更简单/更简单的方法来实现我想要做的事情?
  2. 如果1 = false(我猜是这种情况),这种方法的所有潜在问题是否值得付出努力,或者我的时间会更好地花在将自动更新功能写入应用程序中,并将其全部保留在主应用程序(因此用户只需让应用程序每周更新一次)?
  3. 我的另一个(可能是坏的)想法是将所有autospec代码转移到一个单独的DLL,并在必要时重新部署,或者甚至可以引用共享网络驱动器上的单个DLL?

我猜这是一个非常危险的领域,无论我走哪条路.有人能告诉我,如果我打开一罐最好的蠕虫并真正关闭吗?

是否有更好的方式来处理这整件事?我有一个过度复杂的习惯,我试图踢它:P

与其他信息一样,autospec代码也不是用户输入的.这将是我每周更新它(没有其他人可以访问它),所以希望至少可以缓解一些安全问题.

如果我解释得很糟糕,请道歉.

提前致谢

c# string execution

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

从List <T>中选择

我确定有一种很好的方法可以做到这一点(我猜测其中一种扩展方法?),但我很难在Google上找到它.

基本上我有一个自定义类列表; 我想从中选择一些项目到一个新的List中,其中一个属性等于另一个List中的任何值.

这是我正在尝试做的一个(简化)快速示例:

public class Job
    {
        public int Number;
        public string ClientCompanyName;            
    }

List<Job> lstJobs = new List<Job>();
List<Job> lstCompare = new List<Job>();
Run Code Online (Sandbox Code Playgroud)

通常我会这样做:

List<Job> lstFiltered = new List<Job>();
foreach(Job jobThis in lstCompare)
{
    foreach(jobComp in lstCompare)
    {
        if(jobThis.Number = jobComp.Number)
        {
            lstFiltered.Add(jobThis);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

是否有一种扩展方法可以将最后一位加入(理想情况下)单行?

干杯

c# extension-methods select list

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