小编Rya*_*n S的帖子

静态变量是否是线程安全的?C#

我想创建一个存储DataTables的类,这将阻止我的应用程序每次要检索它时导入详细信息列表.因此,这应该做一次,我相信下面的代码这样做,但我不确定它是否是线程安全的.

下面的代码位于我的三层应用程序的Business Layer部分,它将DataTable返回到表示层.

public class BusinessLayerHandler
{
    public static DataTable unitTable;
    public static DataTable currencyTable;

    public static DataTable GetUnitList()
    {
        //import lists each time the application is run
        unitTable = null;
        if (unitTable == null)
        {
            return unitTable = DatabaseHandler.GetUnitList();
        }
        else
        {
            return unitTable;
        }
    }

    public static DataTable GetCurrencyList()
    {
        //import lists each time the application is run
        currencyTable = null;
        if (currencyTable == null)
        {
            return currencyTable = DatabaseHandler.GetCurrencyList();
        }
        else
        {
            return currencyTable;
        }
    }
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏,如果有更好的方法来缓存DataTable,请告诉我. …

.net c# asp.net

42
推荐指数
4
解决办法
3万
查看次数

OracleCommand SQL参数绑定

我对下面参数的绑定有问题.连接有效,因为我在不使用参数的情况下测试了它.但是,执行前查询的值仍然使用'@userName'而不是'jsmith'.

问题是什么?这不是绕过绑定的正确方法吗?

public static String GetFullName(String domainUser)
{
    DataTable dT;
    String fullName = "";

    OracleConnection db = DatabaseAdapter.GetConn();
    db.Open();

    OracleCommand oraCommand = new OracleCommand("SELECT fullname FROM user_profile WHERE domain_user_name = '@userName'", db);
    oraCommand.BindByName = true;
    oraCommand.Parameters.Add(new OracleParameter("@userName", domainUser));

    OracleDataReader oraReader = null;
    oraReader = oraCommand.ExecuteReader();

    if (oraReader.HasRows)
    {
        while (oraReader.Read())
        {
            fullName = oraReader.GetString(0);
        }
    }
    else
    {
        return "No Rows Found";
    }

    oraReader.Close();
    db.Close();
    db.Dispose();

    return fullName;
}
Run Code Online (Sandbox Code Playgroud)

编辑:我将@添加到参数字段名称,但它仍然无法修复它.

c# oracle system.data.oracleclient

29
推荐指数
2
解决办法
13万
查看次数

IIS是否为每个连接的用户提供一个线程?

我正在研究开发线程安全应用程序.我知道用户可以在同一个应用程序上使用多个线程(如果CPU使用多个线程)但我不确定会发生什么,以及当有5个用户使用相同的应用程序时,IIS如何处理用户.

IIS做什么,所有用户都在同一个线程上工作?或者他们是否分别给出了一个帖子?

说到IIS,我是新手,所以请耐心等待.我的问题将帮助我理解是否需要在我的代码中锁定公共静态方法(线程安全性很重要).

c# iis

21
推荐指数
1
解决办法
8881
查看次数

C# - 调用异常时如何获取类名和行号

我需要两个方法,一个用于从调用异常的位置获取Class,另一个用于获取调用异常的行号.

到目前为止,我有这个代码,它将类名和行号一起给我(例如:DatabaseHandler.cs:第70行):

    private string GetClassAndLine()
    {
        string tempName = e.GetBaseException().ToString();
        int tempPosition = 0;
        int length = tempName.Length;
        for (int i = 0; i < length; i++)
        {
            if (tempName.ElementAt(i).Equals('\\'))
            {
                tempPosition = i + 1;
            }
        }
        return tempName.Substring(tempPosition, length - tempPosition);
    }
Run Code Online (Sandbox Code Playgroud)

所以如果你有任何想法我怎么能单独得到它们,那将会有很大的帮助.然后将它们传递到Oracle以存储发生的任何异常.

更新2:

我正在测试此代码,正如一些人建议的那样:

        private string GetClassName()
    {
        System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(e, true); 
        return trace.GetFrame(0).GetMethod().ReflectedType.FullName;
    }

    private int GetLineNumber()
    {
        System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(e, true); 
        return trace.GetFrame(0).GetFileLineNumber();
    }
Run Code Online (Sandbox Code Playgroud)

这是在特定数据库异常时返回的内容.没有行号被触发的行号或类名.我怎么能得到它?

    Error was found at Class: Oracle.DataAccess.Client.OracleException. …
Run Code Online (Sandbox Code Playgroud)

c# asp.net

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

Tomcat错误:警告:无法检索容器的JNDI命名上下文

当我尝试在Tomcat 7上启动最近部署的Web应用程序时,我catalina.2013-12-31.logTomcat70/logs/文件夹上的文件中遇到以下错误.

Dec 31, 2013 10:11:20 AM org.apache.catalina.deploy.NamingResources cleanUp
WARNING: Failed to retrieve JNDI naming context for container [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/crm]] so no cleanup was performed for that container
javax.naming.NameNotFoundException: Name [comp/env] is not bound in this Context. Unable to find [comp].
    at org.apache.naming.NamingContext.lookup(NamingContext.java:820)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:168)
    at org.apache.catalina.deploy.NamingResources.cleanUp(NamingResources.java:977)
    at org.apache.catalina.deploy.NamingResources.stopInternal(NamingResources.java:959)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5483)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:141)
    at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1247)
    at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:747)
    at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:222)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:186)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) …
Run Code Online (Sandbox Code Playgroud)

java tomcat7

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

JQuery版本冲突

我正在尝试使用Nivo JQuery Slider(http://nivo.dev7studios.com/)和Scrollable Gallery(http://flowplayer.org/tools/demos/scrollable/index.html).

现在我遇到了一个问题,基本上Nivo Slider使用这个JQuery库:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script> 
Run Code Online (Sandbox Code Playgroud)

和Scrollable Gallery使用这个:

<script src="http://cdn.jquerytools.org/1.2.5/full/jquery.tools.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

当两者都启用时,只有缩略图库工作(因为它的脚本导入是在nivo之后完成的),当启用1.42版本时只有Nivo可以工作,而当只启用1.2.5版本时,只有可滚动图库工作.

我该怎么办?

javascript jquery

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

HttpContext.Current.User.Identity.Name 如何工作?它有多安全?

我正在使用HttpContext.Current.User.Identity.Name来获取登录用户的用户名。我想知道这是如何工作的(使用 NTLM v2 / Kerberos)以及它的安全性如何?用户可以尝试模仿他是其他人吗?

基本上,从安全的角度来看,有什么我应该担心的,或者我应该如何改进?

c# asp.net security iis

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

SQL WHERE使用LIKE并与字段进行比较

我有这种情况:

我想检查特定的单词,如果它们匹配一个术语,我将不得不更新该页面的内容并将其链接到该术语.但是现在我专注于获取内容页面,其中部分内容与特定术语相同.

这是我需要做的事情的想法,但它不起作用,因为子查询返回多个字段.

我想找到WHERE m.module_content类似于我所拥有的任何术语,但它应该检查所有.

SELECT m.module_termid, t.term_name, m.module_name, m.module_content
FROM modules m
JOIN terms t ON m.module_termid = t.term_id
WHERE m.module_content LIKE  '%' || (SELECT term_name FROM terms) ||  '%'
Run Code Online (Sandbox Code Playgroud)

module_content有html格式的文本,所以最后我需要做的是,如果它匹配一个术语而且它还不是链接,我将添加一个指向该特定术语的链接.

这里最好的选择是什么?(我使用的是mysql btw)

为您举例说明预期结果:

术语:id:1,name:hello Modules:id:1,content:<p> Hello World </ p>

我想提出id为1的模块,因为它包含的内容在某处有一个名为"hello"的术语

更新:

试过Pablo的解决方案,但这是发生的事情:

在此输入图像描述

例如,"雷戴维斯"与术语"浮动"无关,所以不应该出现.

mysql sql

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

角度2-日期管道,时间转换HH:mm到2个小数位

我正在使用Angular 2,尝试将日期对象转换为HH:mm日期格式,将分钟转换为两位小数位,但是当我使用此方法时:

{{date | date:"HH:mm"}}
Run Code Online (Sandbox Code Playgroud)

我得到15:0而不是15:00。

我尝试查看Angular 2文档,但到目前为止它是相对有限的,不胜感激,对此有任何指导,以及默认情况下Angular 2是否格式化时间。

datetime angular

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

Azure - WebAPI 无法连接到 Azure DB,错误:系统找不到指定的文件 [SqlException]

我有一个应用程序,分为三个部分,它们都托管在 Azure 上:
(1)客户端应用程序(HTML5、CSS3、JS),
(2)Web API,
(3)SQL Server 数据库实例。

在 Azure 上的数据库防火墙设置中启用客户端 IP 后,我在 localhost 上进行了所有这些工作,但是,在部署应用程序时,我从 Web API 收到以下错误:

[Win32Exception]: 系统找不到指定的文件 [SqlException]: 与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供程序:SQL 网络接口,错误:52 - 无法找到本地数据库运行时安装。验证 SQL Server Express 是否已正确安装并且本地数据库运行时功能已启用。)

我试图检查 Azure 上的防火墙设置,我有“允许访问 Azure 服务”,我猜这意味着 WebAPI 服务应该可以访问数据库。

防火墙访问

我刚刚通过 SQL Server Management Studio 使用 web.config 中的相同凭据成功连接。

还有什么我应该检查的吗?

.net c# sql-server azure asp.net-web-api2

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