我有一个通过实体框架连接到MYSQL数据库的应用程序.它100%完美地工作,但我想添加一小段代码,在app启动时测试与数据库的连接.
我只想简单地向数据库运行一个小命令并捕获任何异常,但是如果出现问题(例如App.Config缺失或数据库服务器关闭),应用程序需要花费大量时间来运行此代码然后抛出例外(约1分钟).我想这是由于连接超时等,但我摆弄这些属性无济于事.
是否有人能够协助任何想法去哪儿?
我有两个清单:
List A {A, B, C, D}
List B {A, E, F, G}
Run Code Online (Sandbox Code Playgroud)
我需要制作三个列表:
一个只有列表A中的项目
(B,C,D)
一个只有列表B中的项目
(E,F,G)
一个与两个项目
(一个)
鉴于列表实际上是注册表项,可能会有大量的注册表项,因此如果我选择使用传统的ForEach或For(int i ...)方法,我可以预见到巨大的性能开销.
如果他们能有效地完成这项工作,我并不反对这些,但我更愿意使用Linq.
有没有人有任何想法?
我不关心相同的记录.
我已经创建了一个IEquatable<>将比较元素的类,但它是如何使用它来创建我正在努力的所需输出.
提前致谢.
顺便说一句,我使用VS2012与.NET 4.5
我试图在WPF中创建一个用户控件,允许用户选择鞋子的特定区域(鞋跟,边缘,鞋底等)
这个想法是你有一个鞋子的图像(绘图),你可以点击单个部分并选择区域.
我正在使用一组模板化的复选框.
有一个复选框,其中包含定义边的路径,然后是一组定义各个区域的矩形.
这很好用,除非它看起来不太好看.为了让它看起来更好,我想隐藏不在原始鞋道内的所有东西.
矩形全部位于网格中的单独行中,背景鞋跨越所有行.
我试图将父网格的Clip属性设置为与背景鞋边相同的路径,但得到了一些奇怪的结果:
我很确定我的网格剪辑是正确的,但我不明白这里发生了什么.
如果有人可以帮助解决这个问题或建议更好的方法来完成同样的任务,我将不胜感激.
<Geometry x:Key="ShoeEdgeGeometry">M26.25,0.5 C40.471332,0.5 52,17.625107 52,38.75 52,51.292905 47.935695,62.425729 41.656635,69.401079 L41.349452,69.733874 42.012107,70.457698 C45.421829,74.364614 47.5,79.554564 47.5,85.25 47.5,97.400265 38.042015,107.25 26.375,107.25 14.707984,107.25 5.2499995,97.400265 5.2499991,85.25 5.2499995,79.554564 7.3281701,74.364614 10.737891,70.457698 L11.276058,69.869853 10.843364,69.401079 C4.5643053,62.425729 0.49999952,51.292905 0.5,38.75 0.49999952,17.625107 12.028667,0.5 26.25,0.5 z</Geometry>
<Grid Margin="0"
Clip="{StaticResource ShoeEdgeGeometry}">
<Grid.RowDefinitions>
<RowDefinition Height="2*" />
<RowDefinition Height="4*" />
<RowDefinition Height="2*" />
<RowDefinition Height="2*" />
<RowDefinition Height="2*" />
</Grid.RowDefinitions>
<!-- The edge check box-->
<CheckBox x:Name="ShoeEdgeRegion"
Grid.Row="0"
Grid.RowSpan="5">
<CheckBox.Style>
<Style TargetType="CheckBox">
<Setter Property="Cursor"
Value="Hand" />
<Setter Property="Template">
<Setter.Value> …Run Code Online (Sandbox Code Playgroud) 我有一个WPF Datagrid,它有一个Collection View Source,上面有3个级别的分组.
我已经设置了datagrid样式以使用3个扩展器,使它看起来像这样:
Level 1 Expander
<content>
Level 2 Expander
<content>
Level 3 Expander
<content>
Run Code Online (Sandbox Code Playgroud)
2级和1级只是组的标题
我有第二个控件允许用户显示和隐藏3级项目,这些项目通过将Level 3扩展器绑定到后面对象中的布尔"IsVisible"属性来工作.
<!-- Style for groups under the top level. this is the style for how a sample is displayed -->
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Margin" Value="0,0,0,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<!-- The parent control that determines whether or not an item needs to be displayed. This holds all of the sub controls displayed for a sample …Run Code Online (Sandbox Code Playgroud) 我使用NUGET使用以下命令将Sqlite Core软件包安装到我的c#项目中:
>Install-Package System.Data.SQLite.Core
Run Code Online (Sandbox Code Playgroud)
我创建一个数据库连接如下:
var data = new SQLiteConnection(connectionString);
Run Code Online (Sandbox Code Playgroud)
然后我将事件处理程序挂钩到update事件,每次发生更新语句时触发该事件处理程序(出于特定业务逻辑的最后写入日期字段的目的)
data.Update += DataOnUpdate;
Run Code Online (Sandbox Code Playgroud)
这太棒了.但是,SqliteConnection类还公开了一个名为Trace的事件.文档说明了有关此事件的以下内容:
"This event is raised whenever SQLite Statement First begins executing on this connection. It only applies for the given connection"
Run Code Online (Sandbox Code Playgroud)
我读这意味着它执行与Update事件类似的功能,每当执行SQL语句时它都会触发.
然而
当我将此事件挂钩时如下:
data.Trace += DataOnTrace;
Run Code Online (Sandbox Code Playgroud)
它永远不会发射.我已经尝试过SELECT,UPDATE,DELETE,CREATE TABLE,TRANSACTIONS以及我能想到的Sql逻辑的每一点,并且它拒绝触发.
如果不开火,那么这个活动是什么?或者我需要做些什么才能获得连接以触发此事件?
我需要一个可以通过触摸控制使用的扩展器.当用户触摸切换按钮时,我可以毫不费力地扩展扩展器,但是我想通过拖动扩展器进行扩展,(就像iPhone上从顶部向下滑动的扩展器一样)
我可以使用操作事件捕获滑动手势,我可以使用该事件打开扩展器.但是我不知道如何使扩展状态跟随手指.
我希望如果你拖动它的最终尺寸的某个百分比,如果你让它去,它会快速打开,如果小于这个百分比关闭.
我无所适从,无法在谷歌上找到与此问题相关的任何内容,因此我们将非常感激地收到任何帮助
我有一个WPF应用程序,旨在用于触摸屏.
我使用带有一组图像的列表视图,所选图像出现在全尺寸图像控件中
在触摸屏上,我可以通过触摸列表视图项上的图像来选择图像但是我有一个小问题.
当用户触摸屏幕时,用户手指通常在仍然与屏幕接触的同时略微移动,导致列表视图将触摸解释为滚动请求.
这意味着所需的选择仅在用户小心或在与屏幕接触时没有移动时实际发生.
我认为这是一个问题,它确定了请求滚动操作的阈值,但我无法找到解决此问题的任何方法.
有人可以帮忙吗?
我有一个控件,允许用户在图像的特定部分执行一些重型图像处理,并且他们有箭头按钮在图像周围移动这个区域.
因为这个过程是非常繁重的(每次运行平均800毫秒)我使用了一个重复按钮,将其转换为"Ghost"并且仅在鼠标按下事件时执行该过程.
这非常有效并且解决了与此功能相关的大多数性能问题
然而
某些用户拒绝学习这种握持和释放的方法,并坚持点击按钮移动它而不是握住和释放.
这意味着每次敲击时都会调用重载方法,因为每次方法触发时它只会移动一个小的增量,所以当它尝试执行> 800这些800ms +进程时它们最终会挂起应用程序
我的问题
如何以与保持和释放相同的方式处理此敲击行为?
我想过一个计时器,但无法弄清楚我如何检测正常点击和最后一个点击之间的区别.
我花了很长时间才真正烦人的问题.我将切换到软件测试错误报告模式(来自前世)来解释它.
脚本
预期成绩
实际结果
有一个未封闭的文字字符串.第1行,位置64737. ----------------------------响应不是格式良好的XML.----------------------------尝试连接到报表服务器失败.检查连接信息,并且报表服务器是兼容版本.
笔记
我已经尝试了我能想到的一切,包括在报告定义中搜索未闭合的字符串但没有香蕉.
有没有其他人在SSRS报告生成器中提出此错误?
使用的技术
谢谢
我使用Infragistics XamDialogWindow来近似WPF中的MDI窗口.
基本上我有一个用户控件,我分配给窗口的内容,然后将XamDialogWindow添加为Grid的子项.
然后我有两个按钮,将窗口显示为"Tile"或"Cascade".
级联工作得很好,但我遇到了Tile方法的问题.
我使用容器的"ActualWidth"和"ActualHeight"属性获得可用的宽度和高度.
然后我计算所需的行数和列数.
接下来我遍历列并计算列中有多少行(这意味着如果有奇数个窗口,例如5,我将在列0中有两行,在列1中有3行).
每个窗口的宽度计算为"AvailableWidth/numColumns"
每个窗口的高度计算为"AvailableHeight/WindowsForThisColumn"
然后我遍历行并计算我们定位的窗口的左上角坐标,如下所示:
left = columnIndex*width
top = rowIndex*height
然后设置窗口的Left,Top,Width和Height属性.
问题
例如,Left,Top,Width和Height属性似乎正确计算
这应该给出一个4个窗口的漂亮网格,没有边距填充所有可用空间,但这不是结果.
窗口似乎在显示时偏移(见下图).
如果我查看Left,Top,Width和Height属性,它们看起来都是正确的.
奇怪的是,如果我第二次单击"Tile",它们将全部正确显示.
如果我在第二次单击平铺后移动窗口,它们将正确显示.
我尝试过使用Canvas并设置Canvas.Left和Top属性,每次都有相同结果的网格,stackpanel和wrappanel.
谁能帮我?我认为WPF在渲染时测量尺寸和位置可能是一个问题
var childrenToArrange = Children.Where(a => a.WindowState != Infragistics.Controls.Interactions.WindowState.Minimized).ToList();
var availableWidth = Panel.ActualWidth;
var availableHeight = Panel.ActualHeight;
if (Layout == MDILayout.TILE)
{
//get the number of rows and columns
int rows = (int)Math.Sqrt(childrenToArrange.Count);
int columns = …Run Code Online (Sandbox Code Playgroud) c# ×8
wpf ×6
xaml ×2
c#-4.0 ×1
duplicates ×1
expander ×1
infragistics ×1
linq ×1
list ×1
mysql ×1
sql ×1
sql-server ×1
sqlite ×1
testing ×1
touch ×1