小编Cat*_*lMF的帖子

在SELECT语句中更改Oracle中的列名称

在MSSQL中,我可以选择一个列并通过执行以下操作来更改列标题:

SELECT mycolumn as 'MyNewColumnName' from MyTable
Run Code Online (Sandbox Code Playgroud)

这在Oracle中不起作用.我如何在Oracle中执行相同的操作?

sql-server oracle select columnname

32
推荐指数
2
解决办法
8万
查看次数

WPF网格没有显示滚动条

在.NET 3.5中,我在窗口中有一个网格.我用Buttons填充这个Grid.当按钮填满网格并离开视图时,网格不显示滚动条.我已将网格垂直滚动设置为可见但仍未显示.

<Window x:Name="Window" x:Class="MergeToCheck.CheckList"
             xmlns:sys="clr-namespace:System;assembly=mscorlib"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" Loaded="Window_Loaded" ScrollViewer.VerticalScrollBarVisibility="Disabled"
                ResizeMode="NoResize" ShowInTaskbar="False" Topmost="True" WindowStyle="None" 
        Height="671" Width="846.299" BorderThickness="5">

    <Grid>
        <Grid x:Name="MyGrid" HorizontalAlignment="Left" Height="535" VerticalAlignment="Top" Width="736" Margin="10,63,0,0" ScrollViewer.CanContentScroll="True" ScrollViewer.HorizontalScrollBarVisibility="Visible">
            <Grid.Resources>
                <Style TargetType="{x:Type Panel}">
                    <Setter Property="Margin" Value="0,0,0,6" />
                </Style>
            </Grid.Resources>
            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
                <ColumnDefinition/>
                <ColumnDefinition/>
                <ColumnDefinition/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
        </Grid>        
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

添加按钮的代码:

        CheckList CheckListCtrl = new CheckList();

        System.Windows.Controls.Button btn;
        int row = 0;
        int col = 0;

        CheckListCtrl.MyGrid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(100) });

        foreach(var c in list)
        {
            btn …
Run Code Online (Sandbox Code Playgroud)

c# wpf grid scrollbar .net-3.5

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

用于比较SQL Server和ORACLE中的日期的常用SQL

我需要在我的查询中包含一个日期比较,我将日期字符串与DATETIME列进行比较,但我需要它在ORACLE和SQL Server上工作,而不是有两个单独的查询.有没有可以在oracle和sql上运行的日期比较?

ORACLE:

Select * from MyTable where myDate > DATE '2013-04-10'
Run Code Online (Sandbox Code Playgroud)

SQL Server:

Select * from MyTable where myDate > convert(DATETIME,'2013-04-10', 126)
Run Code Online (Sandbox Code Playgroud)

sql sql-server oracle

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

在第三方程序中读取文件时不会导致IOException

我正在读一个由第三方程序定期写入的文件.我正在使用下面的FileStream阅读:

using (FileStream fs = new FileStream(
                         FullPath,
                         FileMode.Open,
                         FileAccess.Read,
                         FileShare.ReadWrite))
Run Code Online (Sandbox Code Playgroud)

但是第三方程序正在写入文件,但正在使用 FileShare.None

因此,当第三方程序尝试以独占访问权限打开文件但失败时,我偶尔会打开文件进行阅读.

如何在不引起第三方程序问题的情况下读取此文件?我不介意发布我的阅读以优先考虑另一个应用程序.有什么办法吗?

.net c# read-write filestream ioexception

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

如何使用IIS中托管的服务调试启动例外?

我在IIS中运行我的服务.我发生了非致命异常并在启动时登录.

如何将Visual Studio连接到IIS以便它还可以调试启动?

我知道我可以将visual studio连接w3wp.exe到它的运行调试.

c# iis debugging

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

从非托管C Dll加载托管C++ Dll?

我有一个现成的产品,它支持需要用Unmanaged C编写的自定义插件.它不支持Managed Dll,我的首选语言是c#.

需要传递回现货产品的信息非常基本,可以保存在一个字符串中.

所以我想我可以做到以下几点:

  1. 将我的大部分代码写在C#Dll中.
  2. 在C++管理代码中编写一个包装器,它调用我的C#方法.
  3. 在非托管C中编写一个基本的Dll,它调用托管C++ Dll.

现在,在托管C++和C#Dll之间进行通信很容易.

但我无法弄清楚如何从非托管c dll调用托管c ++函数.任何简单示例代码的帮助都会很棒.

谢谢

编辑:我创建了一个代码项目文章,关于我是如何使用Alex的答案在下面做的. http://www.codeproject.com/Tips/695387/Calling-Csharp-NET-methods-from-unmanaged-code

c# c++ unmanaged managed

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

JSON.NET 不区分大小写的反序列化不起作用

我需要将一些 JSON 反序列化到我的对象中,其中 JSON 的大小写未知/不一致。JSON.NET 应该不区分大小写,但它对我不起作用。

我的类定义:

public class MyRootNode
{
    public string Action {get;set;}
    public MyData Data {get;set;}
}

public class MyData
{
    public string Name {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我收到的 JSON 有小写的Action&Data并且有正确的MyRootNode.

我正在使用它来反序列化:

MyRootNode ResponseObject = JsonConvert.DeserializeObject<MyRootnode>(JsonString);
Run Code Online (Sandbox Code Playgroud)

它返回为已初始化MyRootNodeActionData属性为空。

有任何想法吗?

编辑:添加了 JSON

{
   "MyRootNode":{
      "action":"PACT",
      "myData":{
         "name":"jimmy"
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

.net c# json json.net deserialization

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

Oracle 错误:池连接请求超时

我将 Oracle12c 与用 C# 编写的应用程序一起使用,并使用 Oracle.ManagedDataAccess.dll 来处理数据库连接。

我们的产品在运行多年后偶尔会抛出此异常:

Oracle.ManagedDataAccess.Client.OracleException (0xFFFFFC0C): Pooled connection request timed out
   at OracleInternal.ConnectionPool.PoolManager`3.Get(ConnectionString csWithDiffOrNewPwd, Boolean bGetForApp, String affinityInstanceName, Boolean bForceMatch)
   at OracleInternal.ConnectionPool.OraclePoolManager.Get(ConnectionString csWithNewPassword, Boolean bGetForApp, String affinityInstanceName, Boolean bForceMatch)
   at OracleInternal.ConnectionPool.OracleConnectionDispenser`3.Get(ConnectionString cs, PM conPM, ConnectionString pmCS, SecureString securedPassword, SecureString securedProxyPassword)
   at Oracle.ManagedDataAccess.Client.OracleConnection.Open()
Run Code Online (Sandbox Code Playgroud)

我知道这个错误的原因。查看代码,OracleConnection 或 OracleCommand 对象都没有被释放。因此,这些连接正在建立,直到最终抛出此异常。

修复方法很简单。将它们包含在Using语句中。我不需要这方面的帮助。

然而,我感兴趣的是为什么这个问题现在开始了。该软件运行多年没有出现任何问题。他们做了一些数据库维护,更新了同一服务器上的其他软件,然后这个问题就开始了。我不知道他们做了什么 Db 维护。

应用程序中的连接字符串未指定任何池属性。

是否有一个 oracle 数据库设置会导致数据库中的并发连接数减少,从而导致这种情况开始发生?

更新

我编写了一个小测试应用程序来检查限制。它只是循环并打开连接,执行基本查询并且不会释放连接。在我的测试系统上,它在 640 次循环后开始抛出此异常。每次我运行它时,它都会变化给或采取 10 个循环。

是什么设置了这个限制?

.net c# oracle oracle12c oracle.manageddataaccess

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

Azure 中的 Docker 容器应用服务。如何使用 Keyvault 的 DefaultAzureCredential

我有一个在天蓝色中运行的容器应用程序服务,它工作正常。

但是,如果我想在本地运行此容器,它会失败,因为它无法进行身份验证以读取天蓝色中的密钥保管库。

.ConfigureAppConfiguration((context, config) =>
{
    var builtConfig = config.Build();

    string SecretUri = $"https://{builtConfig["KeyVaultName"]}.vault.azure.net/";
    var secretClient = new SecretClient(new Uri(SecretUri), new DefaultAzureCredential(new DefaultAzureCredentialOptions { ExcludeSharedTokenCacheCredential = true }));
    config.AddAzureKeyVault(secretClient, new KeyVaultSecretManager());
})
Run Code Online (Sandbox Code Playgroud)

在 azure 中运行时,DefaultAzureCredential 将从应用程序服务继承其权限,并且工作正常。

但是,如果我想在本地运行容器以在天蓝色之外进行测试,它不知道要使用什么权限。我应该如何处理这个问题?我可以以某种方式告诉容器使用哪些权限而不对容器进行开发更改吗?

containers azure azure-keyvault defaultazurecredential

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

强制C#应用程序在64位服务器上以32位模式运行

我们的客户正在运行我们软件的旧版本,该版本是以"任何CPU"为目标构建的.该软件使用Microsoft Tablet SDK,这是一个仅32位的应用程序.

他们试图在64位PC上安装它,显然有问题,因为我们的软件在64位模式下运行时看不到32位SDK.

重建他们的软件版本不是一个选项(源控制搞砸),但他们计划在未来进行升级.

所以我需要一个临时的解决方法来强制此应用程序以32位模式运行.

我尝试从32位命令提示符启动它,但仍然以64位模式运行它.

有任何想法吗?

.net c# 64-bit 32-bit

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