gpt4 book ai didi

c# - 将c#中的字符串传递给静态语句

转载 作者:行者123 更新时间:2023-11-30 13:48:20 25 4
gpt4 key购买 nike

我试图通过让我的程序连接到服务器来在 C# 中创建一个 SQL 数据库。我在创建登录屏幕时遇到问题。问题是为了创建登录屏幕。我正在尝试将 2 个字符串传递给连接类,但由于该语句是静态的,所以我无法这样做?

public class sqlconnect
{
public String us;
public String pas;

public SqlConnection myConnection = new SqlConnection("user id=" + (us) + ";" +
"password=" + (pas) + ";server=PANDORA;" +
"Trusted_Connection=yes;" +
"database=NHS; " +
"connection timeout=30");
}

ERROR - A field initializer cannot reference the non-static field, method, or property 

如果我尝试将“us”或“pas”设为静态,我将无法将信息从我的主类传递到这个类。如果有人能指出我做错了什么,我将不胜感激,因为我必须承认我不是 C# 方面的专家。谢谢。

最佳答案

您不能在字段初始值设定项中使用变量。这里一个不错的选择是使 myConnection 成为一个属性或(在本例中更好)一个方法:

public SqlConnection CreateConnection()
{
return new SqlConnection("user id=" + us + ";" +
"password=" + pas + ";server=PANDORA;" +
"Trusted_Connection=yes;" +
"database=NHS; " +
"connection timeout=30");
}

这允许您使用其他变量(状态)来创建您想要的值。

我还建议将您的字符串值更改为属性,使用构造函数来初始化它们的属性,并使用更好的名称。另一种选择是将用户名和密码作为方法的参数,即:

public SqlConnection CreateConnection(string username, string password)
{
return new SqlConnection("user id=" + username + ";" +
"password=" + password + ";server=PANDORA;" +
"Trusted_Connection=yes;" +
"database=NHS; " +
"connection timeout=30");
}

这将消除将这些作为状态存储在类中的需要(除非它们也被其他例程使用)。

关于c# - 将c#中的字符串传递给静态语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12923505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com