我有一个数据库"TEST",我在地址123.45.67.89:1521连接到该数据库.
如何使用PL/SQL Developer连接到它?
简而言之.我有两个简单的助手:
private SqlCommand CreateCommand(string text)
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = connection;
cmd.CommandType = CommandType.Text;
cmd.CommandText = text;
return cmd;
}
void SetParameter(SqlCommand cmd, string p, string dbName)
{
cmd.Parameters.Add(p, SqlDbType.NVarChar);
cmd.Parameters[p].Value = dbName;
}
Run Code Online (Sandbox Code Playgroud)
这执行OK:
var cmd = CreateCommand("CREATE DATABASE Demo "+
@"ON (FILENAME = N'c:\demo_data.mdf') "+
@"LOG ON (FILENAME = N'c:\demo_data.mdf.LDF') "+
"FOR ATTACH " +
"GO");
cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
但这不是:
string dataBaseAttachText = "CREATE DATABASE @dbname " +
"ON (FILENAME = @filename) " +
"LOG ON (FILENAME …
Run Code Online (Sandbox Code Playgroud) 是的,Koogra只读.EPPlus仅支持.xlsx并且在边缘情况下是错误的.
这是App.xaml:
<Application>
<Application.Resources>
<ResourceDictionary>
<Style TargetType="Window">
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"/>
</Style>
</ResourceDictionary>
</Application.Resources>
</Application>
Run Code Online (Sandbox Code Playgroud)
我也有MainWindow.xaml.在VS中的设计模式下查看时,它的背景确实是灰色的,应该是它.无论如何,当应用程序运行时,窗口的背景默认为白色.
为什么?
如何解决这个问题?我希望所有窗口默认都具有标准背景.
我有一个decimal
可以同时从多个线程访问的变量.Interlocked
类函数根本不支持小数,所以我留下的唯一方法是使用lock(){}
.这似乎是一种矫枉过正.
还有其他一些方法可以decimal
以线程安全的方式为变量添加值吗?
我正在编写一个应用程序并导入一些包B
.这个包的vendor
目录里面包含了包C
.我也想C
直接在我的应用程序中使用该包.
所以我决定使用glide
包管理器.这两种下载B
和C
进入myapp/vendor
目录,但保持myapp/vendor/B/vendor/C
里面.因此,当我构建我的应用程序时,它构建了两个不同版本的C(也有myapp/vendor/C
).
怎么避免呢?
1)是否有一个包管理器来处理它?govend
似乎与它的--prune
论点,但它不尊重这些C
包的版本.
2)或者,如何glide
正确处理嵌套vendor
目录?
编辑
我的例子是https://github.com/orloffm/flat
.它使用cat
和 - 间接 - toy
包.cat
有一些旧版本的toy
vendored并提交到存储库.我这样做glide create && glide install
并最终结果如下:
.
??? flat.go
??? glide.lock
??? glide.yaml
??? vendor
??? github.com
??? orloffm
??? cat
? ??? cat.go
? ??? vendor
? …
Run Code Online (Sandbox Code Playgroud) 我有一个WPF表格.它处理KeyUp
事件,如果释放的密钥是Escape,它会自行关闭.
此表单还有一个按钮,可将某些Windows窗体显示为对话框.它以相同的方式处理Escape键.
当我在子对话框中按Escape时,两个窗口都关闭.我希望在这种情况下只关闭子窗口窗口窗口.
处理这个问题的正确方法是什么?
是否有某些优秀的样式表(及其使用指南)可以应用于任何窗口以使其具有适当的"Microsoft"外观?
在我的案例/示例中,我有一个简单的窗口:
<Window x:Class="WPFTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
SnapsToDevicePixels="True">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<GroupBox Header="My checkboxes">
<StackPanel >
<CheckBox>First</CheckBox>
<CheckBox>Second</CheckBox>
<CheckBox>Third</CheckBox>
</StackPanel>
</GroupBox>
<StackPanel Grid.Row="1" Grid.ColumnSpan="2"
Orientation="Horizontal"
HorizontalAlignment="Right">
<Button>OK</Button>
<Button>Cancel</Button>
</StackPanel>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
这是它的样子:
我可以想到以下样式组
<Window.Resources>
<Style TargetType="CheckBox">
<Setter Property="Margin" Value="0,8,0,0"/>
</Style>
<Style TargetType="Grid">
<Setter Property="Margin" Value="8"/>
</Style>
<Style TargetType="StackPanel">
<Setter Property="Margin" Value="0"/>
</Style>
<Style TargetType="GroupBox">
<Setter Property="Padding" Value="8"/>
</Style>
<Style TargetType="Button">
<Setter Property="Margin" Value="8,0,0,0"/>
<Setter Property="Padding" Value="8"/>
<Setter Property="MinWidth" Value="70"/>
</Style>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)
连同第一个复选框的更改:
<CheckBox Margin="0">First</CheckBox>
Run Code Online (Sandbox Code Playgroud)
它使窗口看起来像这样: …
微软的参考文件没有说什么,但似乎每个人都使用三个点(...)而不是unicode符号(...)。
可以,还是可能有一些我不知道使用unicode符号的建议的准则?
一个简单的窗口:
<Window x:Class="MyApp.MainWindow" xmlns="..." xmlns:x="...">
<Window.Resources>
<Style TargetType="Grid">
<Setter Property="Margin" Value="8"/>
</Style>
</Window.Resources>
<Grid>
<TextBox VerticalAlignment="Top" HorizontalAlignment="Left">Test</TextBox>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
它看起来像这样:
现在我们删除Window.Resources
:
<Window x:Class="MyApp.MainWindow" xmlns="..." xmlns:x="...">
<Grid>
<TextBox VerticalAlignment="Top" HorizontalAlignment="Left">Test</TextBox>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
并将样式定义添加到App.xaml
:
<Application x:Class="MyApp.App" xmlns="..." xmlns:x="..." StartupUri="View\MainWindow.xaml">
<Application.Resources>
<Style TargetType="Grid">
<Setter Property="Margin" Value="8"/>
</Style>
</Application.Resources>
</Application>
Run Code Online (Sandbox Code Playgroud)
奇怪的是,TextBox现在得到了一个填充:
为什么?
说,我有一节课:
class M
{
public int val;
Run Code Online (Sandbox Code Playgroud)
还有一个+
内部的操作员:
public static M operator +(M a, M b)
{
M c = new M();
c.val = a.val + b.val;
return c;
}
}
Run Code Online (Sandbox Code Playgroud)
而且我有一个List
班级的对象:
List<M> ms = new List();
M obj = new M();
obj.val = 5;
ms.Add(obj);
Run Code Online (Sandbox Code Playgroud)
其他一些对象:
M addie = new M();
addie.val = 3;
Run Code Online (Sandbox Code Playgroud)
我可以做这个:
ms[0] += addie;
Run Code Online (Sandbox Code Playgroud)
它肯定会按照我的预期工作 - 列表中的值会发生变化.但如果我想这样做
M fromList = ms[0];
fromList += addie;
Run Code Online (Sandbox Code Playgroud)
ms
由于显而易见的原因,它不会改变价值.
但直觉上我希望ms[0]
在那之后也会改变.真的,我从列表中选择对象,然后用其他对象增加它的值.所以,由于我在添加之前对ms[0]
in …