我想从数据库中筛选出重复的客户名称.单个客户可能有多个具有相同名称的系统条目,但拼写上的差异很小.所以这是一个例子:一个名为Brook的客户可能有三个条目进入系统:
我们假设我们将此名称放在一个数据库列中.我想知道识别此类重复的不同机制,例如100,000条记录.我们可以在C#中使用正则表达式来遍历所有记录或其他一些模式匹配技术,或者我们可以将这些记录导出到最适合此类查询的内容(具有正则表达式功能的SQL)).
这就是我认为的解决方案
所以请转发任何想法.
我的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上发生某些动作时需要设置焦点.
如何仅为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.谢谢
究竟是什么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) 我有以下枚举
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)
有没有办法可以告诉编译器枚举是一系列整数,这样我就不必执行此操作或重新定义变量?
我在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) 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 …
我正在尝试找到构建音乐可视化工具的最佳方法,以便在网络浏览器中运行.Unity是一个选项,但我需要构建一个自定义音频导入/分析插件来获得最终用户的声音输出.Quartz做我需要的但只能在Mac/Safari上运行.WebGL似乎没有准备好.Raphael主要是2D,但仍然存在获取用户声音的问题......任何想法?有没有人这样做过?
visualization quartz-graphics raphael unity-game-engine webgl
是否可以在MySQL中使一行无效?那么这一行不再用于查询结果了?我的客户希望保留已删除的成员存在于数据库中,但我不想编辑所有查询以检查成员是否被删除.
或者有一种简单的方法可以将整个行数据移动到另一个"非活动"表中吗?
如果我的应用程序崩溃,我使用ExceptionFilter来捕获崩溃,执行一些最终操作,然后向用户显示应用程序崩溃的消息框.
因为应用程序已经崩溃,所以我可以(或者我不敢)做很多事情,因为如果我做得太多,执行的代码可能会访问损坏的内存并再次崩溃.我目前无法做的一些事情(或者我不敢做)是关闭网络连接,Oracle数据库会话,......
问题是,如果应用程序崩溃,并且用户在MessageBox打开时外出吃午餐,则由于打开数据库会话,其他用户可能会被阻止.因此,我想:
我是否忽略了Win32 API中的某些内容,是否有可能让MessageBox超时?
或者从另一个线程关闭一个打开的MessageBox的正确方法是什么(如何获取MessageBox句柄,如何关闭它,......)?