我目前正在尝试实现一个Swing组件,继承JLabel该组件应该只是代表一个可以垂直定向的标签.
从这开始:
public class RotatedLabel extends JLabel {
public enum Direction {
HORIZONTAL,
VERTICAL_UP,
VERTICAL_DOWN
}
private Direction direction;
Run Code Online (Sandbox Code Playgroud)
我认为改变以下结果是个好主意getPreferredSize():
@Override
public Dimension getPreferredSize() {
// swap size for vertical alignments
switch (getDirection()) {
case VERTICAL_UP:
case VERTICAL_DOWN:
return new Dimension(super.getPreferredSize().height, super
.getPreferredSize().width);
default:
return super.getPreferredSize();
}
}
Run Code Online (Sandbox Code Playgroud)
然后Graphics在我卸载绘画之前简单地转换对象JLabel:
@Override
protected void paintComponent(Graphics g) {
Graphics2D gr = (Graphics2D) g.create();
switch (getDirection()) {
case VERTICAL_UP:
gr.translate(0, getPreferredSize().getHeight());
gr.transform(AffineTransform.getQuadrantRotateInstance(-1));
break;
case VERTICAL_DOWN:
// …Run Code Online (Sandbox Code Playgroud) 我有这个参数:
$objDbCmd.Parameters.Add("@telephone", [System.Data.SqlDbType]::VarChar, 18) | Out-Null;
$objDbCmd.Parameters["@telephone"].Value = $objUser.Telephone;
Run Code Online (Sandbox Code Playgroud)
字符串$objUser.Telephone可以为空.如果它是空的,我怎么能把它转换成[DBNull]::Value?
我试过了:
if ([string]:IsNullOrEmpty($objUser.Telephone)) { $objUser.Telephone = [DBNull]::Value };
Run Code Online (Sandbox Code Playgroud)
但这给了我错误:
使用"0"参数调用"ExecuteNonQuery"的异常:"无法将参数值从ResultPropertyValueCollection转换为String."
如果我将它转换为字符串,它会插入一个空字符串"",而不是DBNull.
如何实现这一目标?
谢谢.
我们有许多数据库,在其中一个表中存储10到100千兆字节的数据.它包含图像数据.问题是很多这些数据库都是不正确地创建的.基本上,主键实际上不是主键.在可空列上使用唯一索引创建.其中一些有一个int作为主键而不是bigint.
所以我们一直在慢慢地修复这些数据库.它们通过SQL Server 2008在SQL Server 2000上运行,尽管大多数具有主键问题的都在SQL Server 2000上.问题是,我们不希望在转换表时将数据库锁定一整天.我们经历了几个策略:
告诉SQL Server直接更改列类型.这会锁定桌子直到它完成,并且在很多情况下将它放置一夜之后,它仍然没有完成.
一次性将所有图像插入新表中.这更容易被中断,但整个表基本上都被写入了进程中的日志文件.
在目标表中不存在行的时间插入100行.好处是,他们可以继续使用数据库进行此操作(性能大幅提升),并且可以在任何时候任意停止和重新启动,并且它可以防止100GB +日志文件.这就是我们目前正在做的事情,但是随着目标表变得越来越大,找到不存在的前100行变得非常慢.UPDATE STATISTICS和DBCC INDEXDEFRAG有很大的帮助,但在最近的尝试中,我们达到了这一点,一次只有100张图像坐在那里没有响应.
INSERT INTO %s
SELECT TOP 100 Source.*
FROM %s AS Source WITH (NOLOCK)
LEFT OUTER JOIN %s AS Target WITH (NOLOCK) ON Source.DocumentID = Target.DocumentID
WHERE Target.DocumentID IS NULL
ORDER BY Source.DocumentID
Run Code Online (Sandbox Code Playgroud)所以问题是,是否有可以以高效和可恢复的方式复制批量数据的选项?它不必100%准确,我们总是可以返回并修复最后的任何差异,只要它完成99%的工作.
要从文件中读取行,请在批处理文件中执行以下操作:
for /f %%a in (myfile.txt) do (
:: do stuff...
)
Run Code Online (Sandbox Code Playgroud)
现在假设你的档案在 C:\Program Files\myfolder
for /f %%a in ("C:\Program Files\myfolder\myfile.txt") do (
echo %%a
)
Run Code Online (Sandbox Code Playgroud)
结果:
C:\Program Files\myfolder\myfile.txt
Run Code Online (Sandbox Code Playgroud)
这似乎将给定路径解释为字符串,因此%%a是您给定的路径.
到目前为止我发现的文档中没有任何相关内容.在我开枪之前,请有人帮助我.
set var=%1
echo var
set command=""
IF var==true (
set command=dir
)
IF var==false (
set command=dir /a
)
echo %command%
%command%
Run Code Online (Sandbox Code Playgroud)
所以,如果我通过键入来运行此脚本
C:\>test true
Run Code Online (Sandbox Code Playgroud)
将echo %command%始终打印"".任何的想法?
为什么显示Unicodes的数字上标不是同一个高度?如果您使用上标数字中的两位数字,这一点特别明显.其中一些看起来很好,但其余的看起来相对于彼此.我错过了什么吗?或者这是怎么回事?
在我的android应用程序中,我在\ res\layout\admin.xml中创建了xml文件
我在其中使用的布局是:
<ScrollView >
<LinearLayout >
<TableLayout>
.
.
Components
.
.
</TableLayout>
<TableLayout>
.
.
Components
.
.
</TableLayout>
</LinearLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
错误
!ENTRY com.android.ide.eclipse.adt 4 0 2011-11-17 13:35:10.046
!MESSAGE admin_view_pin.xml: / by zero
!STACK 0
java.lang.ArithmeticException: / by zero
at android.widget.TableLayout.mutateColumnsWidth(TableLayout.java:579)
at android.widget.TableLayout.shrinkAndStretchColumns(TableLayout.java:568)
at android.widget.TableLayout.measureVertical(TableLayout.java:466)
at android.widget.TableLayout.onMeasure(TableLayout.java:431)
at android.view.View.measure(View.java:10577)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4270)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1284)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:613)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:519)
at android.view.View.measure(View.java:10577)
at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1090)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:267)
at android.widget.ScrollView.onMeasure(ScrollView.java:314)
at android.view.View.measure(View.java:10577)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4270)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:267)
at android.view.View.measure(View.java:10577)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4270)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1284)
at …Run Code Online (Sandbox Code Playgroud) 我试图用a中的nameof表达式做一些事情CSharpSyntaxWalker,但是,我注意到NameOfExpressionSyntaxAST中没有.相反,我得到一个没有匹配符号的InvocationExpressionSyntaxfor SemanticModel.GetSymbolInfo,并且调用的表达式IdentifierNameSyntax包含一个标识符标记"nameof".
因此,要识别nameof表达式,我会添加一个特殊情况VisitInvocationExpression,查找是否GetSymbolInfo返回任何内容,如果没有,则查找标识符是否为nameof.然而,这对我来说听起来有点不合时宜.有没有更好的方法可能将那种检测逻辑转移到解析器?
(PS:我知道这可能是出于向后兼容性原因而解析的;只是想知道是否有用于区分nameof和正常调用的API .)
我目前在做一些项目欧拉的问题,并与先前的往往涉及之类的斐波那契数或素数.遍历他们似乎是天作之合LINQ,至少在可读性和感知代码的"优雅"(我试图使用特定语言的功能如果可能的话,适用于获取语言的感觉).
我现在的问题是,如果我只需要一组数字达到一定限度,我该如何表达最佳?目前我已经对迭代器中的相应限制进行了硬编码,但是我真的希望枚举器返回列表,直到外面的东西决定不再查询它,因为它超过了某个限制.所以基本上我有一个可能无限的迭代器,但我只从中获取一组有限的数字.我知道这些东西在函数式语言中是微不足道的,但我想知道C#是否允许这样做.我唯一的另一个想法是拥有一个迭代器Primes(long),它返回一个特定限制的素数,同样适用于其他序列.
有任何想法吗?
我目前正在尝试从简单网格上的图像捕获mousedown.我对事件发射没有任何问题,只是它发射了两次.而且因为点击它两次最终会有不同的状态(它会显示一个扩展的图像),直接进行第二次点击会导致问题.
我目前的代码如下:
XAML
<Window x:Class="WpfApplication.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid Background="Transparent" x:Name="MainContent" MouseDown="Generic_MouseDown">
<Image Source="http://www.blogcdn.com/www.engadget.com/media/2011/05/welcome-kansas-city-google-high-speed-internet.jpg" Height="100" Width="100" MouseDown="Generic_MouseDown"/>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
码:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Generic_MouseDown(object sender, MouseButtonEventArgs e)
{
if (((FrameworkElement)e.Source).GetType() == typeof(System.Windows.Controls.Image))
{
Console.Out.WriteLine("image clicked");
}
else
{
Console.Out.WriteLine("grid clicked");
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,当我点击图像时,它会两次发射mousedown.
谢谢!
c# ×3
batch-file ×2
android ×1
bulkinsert ×1
command-line ×1
dbnull ×1
ienumerable ×1
ios ×1
java ×1
jlabel ×1
linq ×1
nameof ×1
onmousedown ×1
powershell ×1
roslyn ×1
sql ×1
superscript ×1
swing ×1
unicode ×1
wpf ×1