小编T-m*_*oty的帖子

从asp.net中的存储过程中获取返回值

我有一个存储过程

ALTER PROC TESTLOGIN
    @UserName varchar(50),
    @password varchar(50)
As
Begin
    declare @return int;

    set @return  = (SELECT COUNT(*) 
                    FROM CPUser 
                    WHERE UserName = @UserName 
                    AND Password = @password);

    return @return;
End
Run Code Online (Sandbox Code Playgroud)

并在c#

SqlConnection con = db.con;
SqlCommand cmd = new SqlCommand("TESTLOGIN", con);
cmd.CommandType = CommandType.StoredProcedure;

SqlParameter parm = new SqlParameter("@return", SqlDbType.Int);
parm.Direction = ParameterDirection.ReturnValue;

cmd.Parameters.Add(parm);
cmd.Parameters.Add(new SqlParameter("@UserName", txtUserName.Text.ToString().Trim()));
cmd.Parameters.Add(new SqlParameter("@password", txtPassword.Text.ToString().Trim()));

cmd.ExecuteNonQuery();
con.Close();

int id = Convert.ToInt32(parm.Value);
Run Code Online (Sandbox Code Playgroud)

但它总是返回0.请帮我解决这个问题

c# sql-server asp.net

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

urlmon.dll FindMimeFromData()在64位桌面/控制台上运行良好,但在ASP.NET上生成错误

我正在创建一个实用程序库,以便在Web环境中的桌面环境中使用.

它包含我认为在我的应用程序中经常重复的几个功能,包括通过其内容(而不是扩展名)获取文件的mime类型的实用程序.

我必须检查的文件是最常见的(jpg,png,pdf,txt)所以我选择使用外部方法FindMimeFromData(上面的链接)

使用.NET,如何根据文件签名而不是扩展名找到文件的mime类型

该方法运行良好,除了两个不正确的mime类型的JPG(image/pjpg)和PNG(image/x-png),通过在return语句之前进行检查很容易解决.

该库是为平台AnyCPU编译的,因为它必须以32位和64位安装在服务器/客户端上.

在桌面环境测试时,所有为x86和x64编译的应用程序都正常工作.

在测试ASP.NET应用程序(带有用于测试的http处理程序的空站点)时发生类型为HRESULT的错误,并且调试器告诉我它无法提供进一步的信息.

经过一些测试配置,包括将池的身份更改为本地系统(没有结果),我已经确定了问题:

池应该允许32位应用程序(见上图).

IisAllow32BitApplication

为什么?

它不应该加载urlmon.dll我们现在的64位系统的DLL ?

这是一个很大的问题,因为该FindMimeFromData方法可以被任何地方调用到这个库中:

结果是,另一个实用程序方法调用此方法可能会抛出此异常,并且很难通过调试来跟踪问题.

任何想法/经验?

用于测试的操作系统

桌面:

  1. Windows 8 x64 - 有效
  2. Windows 7 x64 - 有效
  3. Windows Server 2008 Standard R2 x64 - 有效
  4. Windows Server 2008 Standard x86 - 有效
  5. Windows Server 2003 Standard x86 - 有效
  6. Windows XP Professional SP3 - 有效

网址:

  1. Windows 8 x64 - 发现第一个错误,仅适用于启用32位应用程序
  2. Windows Server 2008 Standard R2 x64 - 确认错误,仅适用于启用32位应用程序 …

c# dllimport 32bit-64bit urlmon

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

通用静态类有多个实例?

静态泛型类可以有多个单个实例吗?

标准静态类有一个实例,对吗?像这样:

public static class MyClass
{
    public static string MyString { get; set; }
}

public void ExampleMethod(int id)
{
    if (id > 0)
        MyClass.MyString = id.ToString();
}
Run Code Online (Sandbox Code Playgroud)

在我的程序中的任何地方,MyClass代表一个单一的实例,即应用程序作用域.

好的,但是,如果MyClass是通用的呢?

public static class MyClass<T>
{
    public static string MyString { get; set; }
    public static T MyT { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

意味着对于指定的每个类型参数,我的应用程序范围将创建一个新实例?或者它会为每个可能的类型参数创建一个单独的实例?(我真的希望它没有)

对于逻辑,它不能仍然是单个实例,因为我可以这样做:

public void ExampleMethod(int id)
{
    MyClass<int>.MyT = id;
    MyClass<DateTime>.MyT = DateTime.Now;
    MyClass<string>.MyT = "Hello, World";
    MyClass<DayOfWeek>.MyT = …
Run Code Online (Sandbox Code Playgroud)

c# generics static class

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

标签 统计

c# ×3

32bit-64bit ×1

asp.net ×1

class ×1

dllimport ×1

generics ×1

sql-server ×1

static ×1

urlmon ×1