小编use*_*447的帖子

从SQL Server中选择具有匹配列的行

我很确定这很简单,但我尝试的每个例子都失败了.我想查询这样的表

ID   Part_Type   Station_Type
---  ---------   ------------
1    5           234
2    5           846
3    5           234
4    6           585
5    6           585
6    7           465
Run Code Online (Sandbox Code Playgroud)

并返回行1和3,以及4和5.也就是说,我想返回两列匹配的行.它类似于这个问题:SO问题但只需要在一张桌子上完成.该查询将为每一行找到匹配项,但我只希望在两列中具有匹配值的行.我怎么去找那个?

谢谢

sql-server

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

SQL Server CONVERT int to varchar with padding

可能重复:
最有效的T-SQL方式将左边的varchar填充到一定长度?

我通过在SQL中使用datepart函数返回给定日期时间的星期数值.然后我将其转换为varchar以构建字符串.我的问题是我需要数周小于10的周才能成为"01"而不是"1".我需要这个,因为它以这种方式存储在另一个数据库中.

我的问题是,是否有一些我可以给CONVERT函数的规范,以强制varchar长度为2而不是长度为1?

这是我现在的声明:

convert(varchar(2),datepart(ww,'2013-1-3 11:00:00.000'))
Run Code Online (Sandbox Code Playgroud)

我可以将此返回"01"而不是"1"吗?

sql-server varchar typeconverter

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

从 C++ 中的子窗体访问父函数

我已经在 C# 或 PHP 甚至动作脚本中看到了这个问题的几个解决方案,但在 C++ 中却没有。我有一个父窗体,它通过新建子窗体并在其上调用 ShowWindow 来调用子窗体。我现在需要子表单能够调用父表单的(公共)函数之一。

我的第一个想法是在子级构造函数中将父级传递给子级,但由于子级不知道父级是什么,我在子级构造函数定义中收到错误。父级知道子级是什么(我在父级表单的头文件中 #included 子级表单的头文件),但我无法在子级头文件中包含父级的头文件而不发生冲突。

关于在 C++ 中实现这项工作的更好方法或方法有什么想法吗?另外,我正在使用 C++ Builder 2010 仅供参考。

我已经找到了解决方案,并将很快发布。

c++ forms parent-child

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

如何在C#.NET中的循环中创建不定的后台线程

我有一个循环,需要创建一个未指定和无限数量的后台线程.然后线程将简单地运行完成,但有些可能需要取消.

我最初计划通过声明一个backgroundWorker,将其添加到列表,然后新建BackgroundWorker以再次开始该过程来完成此操作.但是因为List.Add方法通过引用传入的对象运行,我认为当我新建原始BackgroundWorker时,List引用的线程将丢失(或更糟).

我的第二个想法是简单地将我的newed值赋给数组中的元素(array [i] = new BackgroundWorker()),但这并不适合无限量的线程.

有没有人有任何关于管理这些单独线程的好方法的建议?提前致谢.

.net c# multithreading backgroundworker

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

将标签保持在 TabControl .NET 之上

我有一个标签,当我从一个选项卡切换到另一个选项卡时,我需要将它放在我的 TabControl 之上。我曾尝试在选项卡控件的 SelectedIndexChanged 事件中调用标签的 BrintToFront 方法,但这没有效果。我也只是尝试在设计视图中右键单击我的标签并选择“置于前面”,但同样,这没有效果。

当我切换到我的第二个选项卡时,它落在 TabControl 后面,但是当我回到我的第一个选项卡时,它又回到了前面。

我将标签本身放在 Form 而不是 TabControl 上。

我在 C# 中工作。任何想法将不胜感激。谢谢。

.net c# tabcontrol z-order

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

返回变量访问器时出现C#"Out of Memory Exception"

当我尝试创建一个Bitmap并通过"get"访问器返回它时,我得到一个Out Of Memory Exception.位图的大小为640x480,深度为Int32.

我怀疑C#垃圾收集器无法删除这些旧的位图,因为它们是在我的变量的访问器中返回的.我有超过2GB的可用空间,所以我不认为这个"小"图像占用太多内存.不幸的是,由于线程锁定问题,我必须重新创建Bitmap(在线程之间锁定图像时出现问题)代码如下:

public Bitmap LiveFrame { get { return GetFrame(500); } }
Run Code Online (Sandbox Code Playgroud)

.....

private Bitmap GetFrame(int timeout)
{
   Bitmap ret = null;
   //CLEyeCameraGetFrame places image data into this._PrivateBitmap
   bool success = CLEyeCameraGetFrame(_Camera, _PtrBmpPixels, timeout);  

   if(success) 
     ret = new Bitmap(this._PrivateBitmap);
    return ret;
}
Run Code Online (Sandbox Code Playgroud)

关于非托管代码的注意事项:CLEyeCameraGetFrame位于非托管DLL中.我在代码中使用Marshal.AllocHGlobal分配_PtrBmpPixels,并且在关闭应用程序时释放之前不要触摸它._PtrBmpPixels用于通过其接受IntPtr参数"scan0"的构造函数创建Bitmap _PrivateBitmap.因此,每当通过CLEyeCameraGetFrame更新_PtrBmpPixels时,_PrivateBitmap也会更新.

我尝试通过在重用之前处理PcitureBox位图来解决这个问题,但这打破了PictureBox的显示.我有两个线程更新两个不同的PictureBox/ImageBoxes:

lock (_CameraLocker)
{
  if (_VideoPlaying)
  {
    try{
         if (pbLiveFeed.Image != null)
            pbLiveFeed.Image.Dispose();

         pbLiveFeed.Image = _Camera.LiveFrame;
         pbLiveFeed.Invalidate();
       }catch (Exception ex) { }
}
Run Code Online (Sandbox Code Playgroud)

....

lock (_CameraLocker)
{
   try{
        if (ibProcessed.Image != …
Run Code Online (Sandbox Code Playgroud)

c# garbage-collection bitmap computer-vision

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