小编Wod*_*dzu的帖子

如何在ASP.NET中使用User.Identity.Name作为SqlDataSource的参数?

对于SqlDataSource,我可以为传入参数配置外部源.例如,它可能是QueryString,Session,Profile等.但是我没有选择使用User作为源.

我知道我可以在插入,选择,更新,删除事件中为参数提供值.但我认为这不是一个优雅的解决方案,因为我已经在aspx文件中定义了一些参数.我不希望在两个单独的地方定义参数.它弄得一团糟.

那么我可以在.aspx文件中以某种方式定义此参数吗?

    <SelectParameters>
        <asp:QueryStringParameter DefaultValue="-1" Name="ID" 
            QueryStringField="ID" />
        //User.Identity.Name goes here as a value for another parameter  
    </SelectParameters> 
Run Code Online (Sandbox Code Playgroud)

c# asp.net sqldatasource parameter-passing

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

使用ShellExecuteEx启动外部应用程序并等待它初始化

我有一个应用程序,需要在链中运行其他几个应用程序.我正在通过他们运行它们ShellExecuteEx.运行每个应用程序的顺序非常重要,因为它们相互依赖.例如:

Start(App1);

If App1.IsRunning then
  Start(App2);
If App2.IsRunning then
  Start(App3);
.........................
If App(N-1).IsRunning then
  Start(App(N));
Run Code Online (Sandbox Code Playgroud)

一切正常,但有一个可能的问题: ShellExecuteEx启动应用程序,几乎立即返回.例如,如果App1已正确启动但尚未完成某些内部任务,则可能会出现此问题,但尚未准备好使用.但是ShellExecuteEx已经开始App2,这取决于App1,并且App2不会正确启动,因为它需要完全初始化App1.

请注意,我不想等待App(N-1)完成然后开始AppN.

我不知道这是否可以用ShellExecuteEx解决,我试过用

SEInfo.fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_NOASYNC;
Run Code Online (Sandbox Code Playgroud)

但没有任何影响.

启动AppN应用程序后,我有一个处理过程.如果我假设应用程序在创建主窗口后被初始化(所有应用程序都有一个窗口),我可以以某种方式在其消息队列上放置一个钩子并等到WM_CREATE出现或者可能WM_ACTIVATE吗?在存在此类消息的情况下,我的应用程序会知道它可以继续前进.

这只是一个想法.但是,我不知道如何把这样的钩子.所以,如果你可以帮助我,或者你有一个更好的想法,那将是伟大的:)

此外,该解决方案必须适用于Windows XP及更高版本.

谢谢你的时间.

编辑

@Cosmic Prund:我不明白你为什么删除你的答案?我可能会尝试你的想法......

windows delphi winapi shellexecuteex

8
推荐指数
1
解决办法
3022
查看次数

线程错误:当尝试释放挂起的线程时,句柄无效(6)

在给定的示例中,我在调用时收到异常 AThread.Free.

program Project44;

{$APPTYPE CONSOLE}

uses
  SysUtils, Classes, Windows;

type
  TMyException = class(Exception);

var
  AThread: TThread;
begin
  AThread := TThread.Create(True);
  try
    AThread.FreeOnTerminate := True;
    //I want to do some things here before starting the thread
    //During the setup phase some exception might occur, this exception is for simulating purpouses
      raise TMyException.Create('exception');
  except
    AThread.Free; //Another exception here
  end;
end.
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

  1. 我应该如何释放AThread的实例TThread在给定的例子吗?

  2. 我不明白,为什么TThread.Destroy呼吁Resumedestroing本身之前.这有什么意义?

delphi exception tthread delphi-2009

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

如何在ASP.NET中将空字符串设置为DataSource参数的默认值?

这不起作用.我从SQL数据库得到一个例外,该列不允许空值.

<asp:SqlDataSource ID="MyDataSOurcet" runat="server" 
        ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" 
        InsertCommand="INSERT INTO MyTable(Name) VALUES (@Name) WHERE NameID = 1" 
        <InsertParameters>
            <asp:Parameter Name="Name" Type="String" DefaultValue=""/>
        </InsertParameters>
    </asp:SqlDataSource>
Run Code Online (Sandbox Code Playgroud)

c# asp.net

7
推荐指数
1
解决办法
4663
查看次数

有没有办法从流加载Crystal Report 9.0文件?

我正在使用Delphi和Crystal Reports 9.0 ActiveX对象.

我知道我可以从这样的文件加载报告:

crApplication.OpenReport(AFileName)

但是,我想将我的报告存储在内存中,并从内存而不是文件中打开它.我不想在我的磁盘上创建任何临时文件.

有任何想法吗?

谢谢你的时间.

delphi com activex crystal-reports

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

存储具有所有用户的读/写权限的应用程序数据的最佳目录?

在Windows Vista之前,我将应用程序数据保存到程序所在的目录中.最常见的地方是"C:\ Program Files\MyApplication".我们知道,在Vista之后,普通用户无权在"Program Files"文件夹下写入.所以我的第一个想法是将应用程序数据保存在"所有用户\应用程序数据"文件夹下.但似乎这个文件夹也有写作限制!

总而言之,我的要求是:

  • 该文件夹应存在于Windows XP及更高版本中.
  • 系统的所有用户都应具有对此文件夹及其子文件夹和文件的读\写\创建权限.
  • 我想只有一个文件\文件副本的所有用户.

language-agnostic windows file-io

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

DataSource中没有数据时,DetailsView不可见

即使基础数据源中没有数据,如何显示DetailsView?

问题是当DetailsView不可见时,命令按钮也不可见.所以我不能将新记录插入数据库.我希望DetailsView它的DefaultMode设置始终可见ReadOnly.

如果不可能,我想问一个解决这个问题的方法.

我想到的一个解决方法是检查数据源是否有任何记录.如果没有,则programmaticaly更改DefaultMode为Insert.但是,这会导致另一个问题 - 如何计算DataSource中的记录数.

我所有的问题都与ASP 3.5有关

asp.net visibility detailsview recordset

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

如何在具有句柄时检查给定进程是否正在运行

我正在ShellExecuteEx用来启动一个应用程序.成功启动后即可读取TShellExecuteInfo.hProcess获取启动过程的句柄.

我想定期检查我的应用程序启动的进程是否仍在运行.两个或多个具有相同名称的进程可以同时运行,我想确保我的应用程序正在检查正确的进程.

我希望能够在从Windows 2000到Windows上的Windows系统上执行此操作.

我知道有WinAPI功能GetProcessId正在做我想要的但它不支持Windows 2000.

谢谢您的回答.

windows delphi process handle

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

如何在不修改该单元的情况下禁用给定单元的警告?

所以我在我的单位包括一些其他单位,在建立申请后,我收到了来自这些单位的大量警告.金额太大,以至于我在列表中找到自己的警告时遇到了问题.;-)

是否有一些编译器指令允许我关闭这些警告?但请注意,我不想以任何方式修改这些单位.我想实现这样的目标:

unit MyUnit;

interface

uses
  UnitA, {$WARN EMIT_WARNNIGS OFF} UnitB, {$WARN EMIT_WARNNIGS ON} UnitC, UnitD.

implementation

uses
  UnitE, {$WARN EMIT_WARNNIGS OFF} UnitF, UnitG, {$WARN EMIT_WARNNIGS ON} UnitH.
Run Code Online (Sandbox Code Playgroud)

这是一个虚构的编译器指令,我想拥有它,或者它可能存在但我不知道它?

谢谢你的时间.

delphi delphi-2009 compiler-warnings

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

将<T>类型的值转换为Variant,是否可能?

这是一个片段,展示了我想要实现的目标:

type
  TMyObject<T> = class (TObject)
    function GetVarType(Value: T): TVarType;
  end;


function TMyObject<T>.GetVarType(Value: T): TVarType;
var
  TmpValue: Variant;
begin
  TmpValue := Variant(Value); //Invalid typecast
  Result := VarType(TmpValue);
end;
Run Code Online (Sandbox Code Playgroud)

我知道上面的类型转换是天真的,但我希望你能得到这个想法.我想用一些转换机制替换它.

TMyObject将始终是简单类型,如Integer,String,Single,Double.

这种转换的目的是函数VarType为每个我可以存储在其他地方的简单类型提供整数常量.

我想知道这种转换是否可行?

谢谢你的时间.

delphi generics delphi-2009 variant

6
推荐指数
2
解决办法
3416
查看次数