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