问题列表 - 第29255页

如何识别拼写不同的相似单词

我想从数据库中筛选出重复的客户名称.单个客户可能有多个具有相同名称的系统条目,但拼写上的差异很小.所以这是一个例子:一个名为Brook的客户可能有三个条目进入系统:

  1. 布鲁克伯塔
  2. 布鲁克伯塔
  3. 比鲁克贝塔

我们假设我们将此名称放在一个数据库列中.我想知道识别此类重复的不同机制,例如100,000条记录.我们可以在C#中使用正则表达式来遍历所有记录或其他一些模式匹配技术,或者我们可以将这些记录导出到最适合此类查询的内容(具有正则表达式功能的SQL)).

这就是我认为的解决方案

  • 编写一个C#代码来遍历每条记录
  • 只按顺序获取辅音字母(在上面的例子中:BrKBrt)
  • 从其他记录中搜索相同的辅音模式,考虑类似的声音字母,如(C,K)(C,S),(F,PH)

所以请转发任何想法.

c# sql pattern-matching linq-to-sql

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

从WPF中的View中设置ViewModel上的属性

我的ViewModel上有一个依赖属性,它是我的View的DataContext.ViewModel没有对View的引用.ViewModel上的属性将引用视图上的控件,但我需要能够在XAML中设置此属性.

这怎么可能?我有一个想法是开发一个具有Property属性和Value属性的自定义控件,因此您可以在View中执行类似的操作以在ViewModel上设置属性:

<PropertySetter Property="{Binding MyViewModelDependencyProperty}" Value="{Binding ElementName=aControlOnMyView" />
Run Code Online (Sandbox Code Playgroud)

在我走这条路之前,我想检查一下我是否还有其他方法可以采取?


感谢雷的详细回复,但如果我给你一些关于我试图解决的问题的更多细节,你可能会更好地了解我为什么提到我做的方法.

基本上,我正在尝试做的是当用户点击按钮时将焦点设置为文本框.我写了一个附加属性,你可以将它附加到Button控件,指定触发事件是什么(在这种情况下是'Click'事件),然后是要关注的控件.这非常好用,并且保留了XAML中的所有内容.

但是,我现在有一个用例,其焦点应设置为按钮上的单击事件的任意文本框,该按钮是工具栏的一部分.这个工具栏本身就是一个用户控件,它位于另一个用户控件内,该控件位于另一个用户控件内!此工具栏需要可以在各种不同的表单中重复使用,并且每次单击按钮后设置焦点的控件在每个表单中都会有所不同.

这就是为什么我想让焦点控件(即文本框)成为视图模型本身的属性(在我的ViewModel基础上是精确的),并且具有ViewModel基本代码(工具栏绑定到的),设置单击按钮时对焦于控件(并且在ViewModel基础上调用例如Add/Edit方法).

在单元测试中,关注属性的控件将为null,因此它的.Focus()方法就不会被调用.所以我在那里看不到问题.我的问题是如何从XAML设置焦点控制属性,这就是我有PropertySetter想法的原因.

我不喜欢ViewModel对视图上的控件有任何引用这一事实,但我看不到另一种方法来实现我需要的东西.如果决定是否将焦点设置到控件的逻辑非常复杂怎么办?这肯定会在ViewModel中吗?因此,具有此UIElement属性的ViewModel是否有任何损害?它仍然对它所绑定的特定视图一无所知,它只知道在ViewModel上发生某些动作时需要设置焦点.

wpf xaml dependency-properties mvvm

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

如何仅为Safari加载CSS?

如何仅为Safari浏览器加载css文件?我通常只使用这个(没有javascript)

<!--[if IE 8]>
  <link href="ie8.css" rel="stylesheet" type="text/css" />
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

对于Internet Explorer 8.谢谢

html css safari

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

从网格视图中获取业务对象

究竟是什么e.Row.DataItem返回.. MSDN说.. 返回一个Object,表示GridViewRow对象绑定到的底层数据对象.

这是我的DataGrid ......

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1" OnRowDataBound="GridView1_RowDataBound">
        <Columns>
            <asp:BoundField DataField="PracticeCode" HeaderText="PracticeCode" SortExpression="PracticeCode" />
            <asp:BoundField DataField="AccountNo" HeaderText="AccountNo" SortExpression="AccountNo" />
            <asp:BoundField DataField="PatientName" HeaderText="PatientName" SortExpression="PatientName" />
            <asp:TemplateField HeaderText="Status">
                <ItemTemplate>
                    <asp:Label ID="LblStatus" runat="server"></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
Run Code Online (Sandbox Code Playgroud)

然后我将它绑定到我的业务对象列表<Patient> ..在DataBound行事件中,我试试这个...

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        Patient p1 = (Patient)e.Row.DataItem;
        Label lbl = e.Row.FindControl("LblStatus") as Label;

        if (p1 == null)
        {
            throw new Exception("P1 is null");
        }

        if (p1.OpenItems.Count > 0)
        {
            lbl.Text = "Has open Items";
        }
        else …
Run Code Online (Sandbox Code Playgroud)

c# asp.net gridview business-objects

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

将枚举转换为int

我有以下枚举

public enum TESTENUM
{
    Value1 = 1,
    Value2 = 2
}
Run Code Online (Sandbox Code Playgroud)

然后我想用它来比较我有的整数变量,如下所示:

if ( myValue == TESTENUM.Value1 )
{
}
Run Code Online (Sandbox Code Playgroud)

但是为了做这个测试,我必须按如下方式强制转换枚举(或者可能将整数声明为类型枚举):

if ( myValue == (int) TESTENUM.Value1 )
{
}
Run Code Online (Sandbox Code Playgroud)

有没有办法可以告诉编译器枚举是一系列整数,这样我就不必执行此操作或重新定义变量?

c# enums casting

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

import gtk/glib产生ImportError:DLL加载失败

我在Windows XP SP3上从各自的网站安装了最新版本的python(2.6.5),gtk +,pygtk(和朋友).当您尝试导入gtk(或只是glib)时,会引发ImportError:

Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import gtk
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python26\lib\site-packages\gtk-2.0\gtk\__init__.py", line 38, in <module>
    import gobject as _gobject
  File "C:\Python26\lib\site-packages\gtk-2.0\gobject\__init__.py", line 26, in <module>
    from glib import spawn_async, idle_add, timeout_add, timeout_add_seconds, \
  File "C:\Python26\lib\site-packages\gtk-2.0\glib\__init__.py", line 22, in <module>
    from glib._glib import *
ImportError: DLL load failed: The …
Run Code Online (Sandbox Code Playgroud)

python gtk pygtk

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

Copy DOMNodes from one DOMDocument to another

I've been trying to combine two XML documents like this:

$def  = new DOMDocument( '1.0' );
$rdef = new DOMDocument( '1.0' );
$def->load( $path );
$rdef->loadXML( $info );
$r = $def->getElementsByTagName( 'repository' )->item( 0 );
$s = $rdef->getElementsByTagName( 'repository' )->item( 0 );
try {
    $r->appendChild( $s );
}
catch ( DOMException $e ) {
    SPConfig::debOut( get_class( $s ) );
    SPConfig::debOut( $e->getMessage() );
}
Run Code Online (Sandbox Code Playgroud)

结果是:

DOMElement
Wrong Document Error
Run Code Online (Sandbox Code Playgroud)

所以在我看来,$rdef->getElementsByTagName( 'repository' )->item( 0 )返回DOMElement对象但定义说它应该是DOMNode …

php xml dom

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

如何编写基于网络的音乐可视化工具?

我正在尝试找到构建音乐可视化工具的最佳方法,以便在网络浏览器中运行.Unity是一个选项,但我需要构建一个自定义音频导入/分析插件来获得最终用户的声音输出.Quartz做我需要的但只能在Mac/Safari上运行.WebGL似乎没有准备好.Raphael主要是2D,但仍然存在获取用户声音的问题......任何想法?有没有人这样做过?

visualization quartz-graphics raphael unity-game-engine webgl

5
推荐指数
2
解决办法
3070
查看次数

在MySQL中使行无效

是否可以在MySQL中使一行无效?那么这一行不再用于查询结果了?我的客户希望保留已删除的成员存在于数据库中,但我不想编辑所有查询以检查成员是否被删除.

或者有一种简单的方法可以将整个行数据移动到另一个"非活动"表中吗?

php mysql sql

7
推荐指数
2
解决办法
2234
查看次数

具有超时的MessageBox或从另一个线程关闭MessageBox

如果我的应用程序崩溃,我使用ExceptionFilter来捕获崩溃,执行一些最终操作,然后向用户显示应用程序崩溃的消息框.

因为应用程序已经崩溃,所以我可以(或者我不敢)做很多事情,因为如果我做得太多,执行的代码可能会访问损坏的内存并再次崩溃.我目前无法做的一些事情(或者我不敢做)是关闭网络连接,Oracle数据库会话,......

问题是,如果应用程序崩溃,并且用户在MessageBox打开时外出吃午餐,则由于打开数据库会话,其他用户可能会被阻止.因此,我想:

  • 具有超时的MessageBox.问题是你不能用标准的MessageBox Win32 API函数做这个,我不想为它做一个特定的对话框(因为我想在崩溃后最小化执行的逻辑)
  • 或者从另一个线程关闭MessageBox的可能性(另一个线程可以提供超时逻辑).

我是否忽略了Win32 API中的某些内容,是否有可能让MessageBox超时?

或者从另一个线程关闭一个打开的MessageBox的正确方法是什么(如何获取MessageBox句柄,如何关闭它,......)?

c++ windows winapi

5
推荐指数
2
解决办法
7711
查看次数