小编Pau*_*aul的帖子

不一致的Silverlight 4 ComboBox下拉显示

我有一个Silverlight 4应用程序,在表单底部附近有一个ComboBox.Dropdown中可以有大约30到100个项目.

当我第一次打开ComboBox时,没有SelectedItem,Dropdown向上打开,它可以看到大约23个条目; 只要我没有选择项目,每次重新打开Dropdown时它都会继续这种行为.一旦我选择了一个项目,每次我打开ComboBox后,它总是向下打开Dropdown,并且只显示3个条目.

我猜Dropdown仅限于3项,因为这是我在屏幕上最大化时窗口的下限.

即使先前已选择某个项目,如何让它显示更多项目?

下面是一个示例Silverlight应用程序,它演示了浏览器内外的行为.

MainPage.xaml中:

<UserControl x:Class="ComboBox_Test.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="650" d:DesignWidth="1024">

    <Grid x:Name="LayoutRoot" Background="LightSteelBlue" Loaded="MainPage_OnLoaded">
        <Grid.RowDefinitions>
            <RowDefinition Height="3*" MinHeight="25" MaxHeight="25" />
            <RowDefinition Height="35*" MinHeight="200" />
            <RowDefinition Height="10*" MinHeight="70" MaxHeight="70" />
            <RowDefinition Height="30*" MinHeight="230" MaxHeight="230" />
            <RowDefinition Height="*" MinHeight="10" MaxHeight="30" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="12" />
            <ColumnDefinition Width="150" />
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="12" />
        </Grid.ColumnDefinitions>
        <TextBlock Name="lblData" Text="Data:" Grid.Row="1" Grid.Column="1" />
        <TextBox x:Name="txtData" Grid.Row="1" Grid.Column="2" VerticalScrollBarVisibility="Auto"
                HorizontalScrollBarVisibility="Auto" />
        <StackPanel x:Name="AccessPanel" Orientation="Vertical" HorizontalAlignment="Left" Margin="5"
                Grid.Row="3" …
Run Code Online (Sandbox Code Playgroud)

c# silverlight combobox silverlight-4.0

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

在 Oracle Merge 语句的 using 子句中指定参数

Oracle 的 PL/SQL 对我来说相当新,因此我需要一些帮助来理解我尝试在 Merge 的 using 子句中使用参数的方式是否可行。

我正在使用 ODP.NET 使用 Oracle 11g 与现有的 C# .NET 4.0 代码库进行通信,该代码库使用 SQL 连接来检索/修改数据。现有的 SQL 语句如下所示:

MERGE INTO Worker Target
USING
(
  SELECT
        :Id0            Id
       ,:Options0       Options
  FROM dual
  UNION ALL
  SELECT
        :Id1            Id
       ,:Options1       Options
  FROM dual
) Source
ON (Target.Id = Source.Id)
WHEN MATCHED THEN
  UPDATE SET
        Target.StateId = :StateId
       ,Target.Options = Source.Options
Run Code Online (Sandbox Code Playgroud)

在 C# StringBuilder 中生成 using 子句,以容纳不同数量的工作进程 Id/Option 对,同时创建匹配的参数。

StringBuilder usingClause = new StringBuilder();
List<OracleParameter> parameters = new List<OracleParameter>();
for …
Run Code Online (Sandbox Code Playgroud)

.net oracle plsql odp.net c#-4.0

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

如何使用C#ODP.NET中的Oracle Ref Cursor作为ReturnValue参数,而不使用存储函数或过程?

我需要帮助的理解,如果我试图用一个参考光标作为一个返回值参数多个记录/值的方式,与PL/SQL只是作为一个OracleCommand对象的CommandText,而不是在存储过程或函数,即使是可能.

如果这是不可能的,我正在尝试做的是找到一种方法来发出一个PL/SQL语句,它将更新未知数量的记录(取决于WHERE子句匹配的数量),并返回所有的ID记录在OracleDataReader中更新,使用数据库的单次往返,而不使用存储过程或函数.

我正在使用Oracle 11g使用ODP.NET与现有的C#.NET 4.0代码库进行通信,该代码库使用SQL连接来检索/修改数据.我正在使用的简化测试表定义如下所示:

CREATE TABLE WorkerStatus
(
    Id                  NUMERIC(38)         NOT NULL
    ,StateId            NUMERIC(38)         NOT NULL
    ,StateReasonId      NUMERIC(38)         NOT NULL
    ,CONSTRAINT PK_WorkerStatus PRIMARY KEY ( Id )
)
Run Code Online (Sandbox Code Playgroud)

我预先用三个测试值填充表,如下所示:

BEGIN
    EXECUTE IMMEDIATE 'INSERT INTO WorkerStatus (Id, StateId, StateReasonId)
                        VALUES (1, 0, 0)';
    EXECUTE IMMEDIATE 'INSERT INTO WorkerStatus (Id, StateId, StateReasonId)
                        VALUES (2, 0, 0)';
    EXECUTE IMMEDIATE 'INSERT INTO WorkerStatus (Id, StateId, StateReasonId)
                        VALUES (3, 0, 0)';
END;
Run Code Online (Sandbox Code Playgroud)

从名为Oracle_UpdateWorkerStatus2的脚本文件加载并包含在OracleCommand.CommandText中的现有SQL语句如下所示:

DECLARE
    TYPE id_array IS TABLE OF WorkerStatus.Id%TYPE INDEX BY PLS_INTEGER;    

    t_ids …
Run Code Online (Sandbox Code Playgroud)

.net oracle plsql odp.net c#-4.0

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

通过脚本在Oracle中更快地插入?

我正在使用C#.NET 4.0应用程序,它使用ODP.NET 11.2.0.2.0和Oracle 11g数据库.该应用程序使用数据预加载一些查找表,并且由于大多数记录少于20条,因此脚本运行得非常快.但是,其中一个脚本有802条记录,插入记录需要248.671秒,这对于如此少量的数据而言似乎过多,而数据库通过大量数据进行快速操作.

所以我想知道,通过脚本插入数据的速度是否比编写脚本的当前方式更快?

插入的表定义如下:

CREATE TABLE FileIds
(
     Id                 NUMERIC(38)                         NOT NULL
    ,Name               NVARCHAR2(50)   DEFAULT 'Unknown'   NOT NULL 
    ,FileTypeGroupId    NUMERIC(38)                         NOT NULL
    ,CONSTRAINT FK_FileIds_FileTypeGroups FOREIGN KEY ( FileTypeGroupId ) REFERENCES FileTypeGroups ( Id )
)
Run Code Online (Sandbox Code Playgroud)

要插入的脚本如下所示:

BEGIN
    INSERT ALL
        INTO FileIds ( Id, FileTypeGroupId ) VALUES (1152,5)
        INTO FileIds ( Id, FileTypeGroupId ) VALUES (1197,10)
        INTO FileIds ( Id, FileTypeGroupId ) VALUES (1200,6)
        INTO FileIds ( Id, FileTypeGroupId ) VALUES (1143,3)
        INTO FileIds ( Id, FileTypeGroupId ) VALUES …
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql

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

标签 统计

oracle ×3

plsql ×3

.net ×2

c#-4.0 ×2

odp.net ×2

c# ×1

combobox ×1

silverlight ×1

silverlight-4.0 ×1

sql ×1