Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从类调用连接字符串_C#_Visual Studio - Fatal编程技术网

C# 从类调用连接字符串

C# 从类调用连接字符串,c#,visual-studio,C#,Visual Studio,所以我现在真的很恼火。我仍然在尝试使用我在登录表单的公共类中创建的连接字符串,以便调用hhrcv\u登录\u验证过程 我的问题是怎么做 我到处都找过,是的,我确实得到了一些例子,但我需要有人更好地为我解释它们,好吗?也许还有一些示例代码 我知道我必须为连接字符串创建类,并使用该连接字符串调用proc?我说得对吗 这是我的代码: using System; using System.Collections.Generic; using System.Text; using CoreLab.Orac

所以我现在真的很恼火。我仍然在尝试使用我在登录表单的公共类中创建的连接字符串,以便调用hhrcv\u登录\u验证过程

我的问题是怎么做

我到处都找过,是的,我确实得到了一些例子,但我需要有人更好地为我解释它们,好吗?也许还有一些示例代码

我知道我必须为连接字符串创建类,并使用该连接字符串调用proc?我说得对吗

这是我的代码:

using System;
using System.Collections.Generic;
using System.Text;
using CoreLab.Oracle;

namespace WMS
{
    class Common
    {
        static void connect()
        {
            // Connect
            string constr = "User ID=Password;" +
            "Password=Username;" +
            "Host="ServerName";" +
            "Pooling=true;" +
            "Min Pool Size=0;" +
            "Max Pool Size=100;" +
            "Connection Lifetime=0";
            OracleConnection con = new OracleConnection(constr);
            con.Open();
     }
}
请帮忙

下面是我对您的示例代码所做的操作:
namespace WMS
{
class Common
{
    public static string ConnectionString
    {
        get
        {
            return ConnectionString;
        }
        set
        {
            ConnectionString = "User ID=username;" +
            "Password=password;" +
            "Host=hostname;" +
            "Pooling=true;" +
            "Min Pool Size=0;" +
            "Max Pool Size=100;" +
            "Connection Lifetime=0";
        }
    }

    public static OracleConnection OpenConnection()
    {
        OracleConnection con = new OracleConnection(ConnectionString);
        con.Open();
        return con;
    }
 }
} 
这样行吗

然后我如何从表单中访问它?为此:

<using(var conn = Common.OpenConnection()) {
 // use it
}
cont和con的作用域是本例中的方法。如果您希望它们在该字段之外可用,则需要在字段中存储一些内容。例如,可能类似于:

class Common
{
    private string connectionString;
    public static string ConnectionString {
        get { return connectionString; }
        set { connectionString = value; }
    }
    public static DbConnection OpenConnection()
    {
        OracleConnection con = new OracleConnection(ConnectionString);
        con.Open();
        return con;
    }
}
因此,您可以在应用程序早期的某个点配置连接字符串:

Common.ConnectionString = ... // TODO
然后,当您需要访问数据时:

using(var conn = Common.OpenConnection()) {
     // use it
}
我还应该注意到,静态并不总是做事情的最佳方式。它会起作用,但以后会给您更少的选项。

cont和con的范围是本例中的方法。如果您希望它们在该字段之外可用,则需要在字段中存储一些内容。例如,可能类似于:

class Common
{
    private string connectionString;
    public static string ConnectionString {
        get { return connectionString; }
        set { connectionString = value; }
    }
    public static DbConnection OpenConnection()
    {
        OracleConnection con = new OracleConnection(ConnectionString);
        con.Open();
        return con;
    }
}
因此,您可以在应用程序早期的某个点配置连接字符串:

Common.ConnectionString = ... // TODO
然后,当您需要访问数据时:

using(var conn = Common.OpenConnection()) {
     // use it
}

我还应该注意到,静态并不总是做事情的最佳方式。它会起作用,但以后会给你更少的选择。

有什么问题吗?什么在工作还是不工作?@JonathonReinhart如何使用此连接字符串调用存储过程?基本上,我有一个登录表单,我想在其中使用一个存储过程来检查用户的登录详细信息是否正确,是否存在于数据库中。那么我把这个过程称为什么呢?在“登录”按钮中?那么我该怎么做呢?下面添加的编辑就是我对您的示例代码所做的编辑,它确实破坏了get/setaccessors@MarcGravell如果我像您的示例代码一样保留它,我会得到错误:错误1的WMS.Common.ConnectionString.get必须声明一个主体,因为它没有标记为抽象或extern@Werner你一定在用一个旧的IDE,我会的请在几分钟内编辑我的答案,说明如何操作问题是什么?什么在工作还是不工作?@JonathonReinhart如何使用此连接字符串调用存储过程?基本上,我有一个登录表单,我想在其中使用一个存储过程来检查用户的登录详细信息是否正确,是否存在于数据库中。那么我把这个过程称为什么呢?在“登录”按钮中?那么我该怎么做呢?下面添加的编辑就是我对您的示例代码所做的编辑,它确实破坏了get/setaccessors@MarcGravell如果我像您的示例代码一样保留它,我会得到错误:错误1的WMS.Common.ConnectionString.get必须声明一个主体,因为它没有标记为抽象或extern@Werner你一定在用一个旧的IDE,我会的在几分钟内编辑我的答案以演示如何操作that@wernervdh8好吧,你把属性访问器搞得一团糟。。。你为什么把我上面贴的东西改了?{get;set;}应该很好,除非您使用的是非常旧的编译器。但是:这有什么问题吗?@wernervandenhe有没有看过上面的edit,了解如何在旧编译器上实现一个基本属性versions@wernervdh8好吧,你把属性访问器搞得一团糟。。。你为什么把我上面贴的东西改了?{get;set;}应该很好,除非您使用的是非常旧的编译器。但是:这有什么问题吗?@wernervanden有没有看过上面的edit,了解如何在较旧的编译器版本上实现基本属性