我的帐户控制器中存在C#问题。
public class Authenticateuser
{
int Userid = 0;
static string connstring = ConfigurationManager.ConnectionStrings["dbPCTECH"].ConnectionString;
public MySqlConnection connection = new MySqlConnection(connstring);
Connection.open;
connection.open正在引发异常,它不在当前上下文中。是什么引起了这个?我尝试过改名等等。我从未遇到过这个问题。
答案 0 :(得分:2)
三个主要问题:
()
添加功能名称的末尾才能调用 在C#中,Connection
与connection
不同。有时您会想要使用不同的大小来区分两个成员,例如完整的属性,但除此之外,拥有connection
和conNectIOn
是不好的,即使它会起作用。
此外,要调用函数或方法,您需要使用名称末尾的()
,这样您就可以connection.Open();
修改强>: 问题3有点复杂。这是你的班级:
public class Authenticateuser
{
public MySqlConnection connection = new MySqlConnection(connstring);
private static string connstring = ConfigurationManager
.ConnectionStrings["dbPCTECH"].ConnectionString;
private int Userid = 0;
connection.Open;
}
我将代码重构为更传统的顺序,public
成员位于顶层,private
成员位于底层,static
成员位于非静态位置之上。如果您不使用private
,则默认为private
,但我更喜欢在输入时明确表示。
无论如何,这个问题与函数无法在类体中直接调用这一事实有关。只能在那里写入字段,属性和方法。你需要做的是将它包装在另一个函数中,如下所示:
public class Authenticateuser
{
public MySqlConnection connection = new MySqlConnection(connstring);
private static string connstring = ConfigurationManager
.ConnectionStrings["dbPCTECH"].ConnectionString;
private int Userid = 0;
public Open() => connection.Open();
}
另外,
public Open() => connection.Open();
完全相同:
public Open()
{
connection.Open();
}
干净利落。这应该工作。然后你这样称呼它:
var auth = new Authenticatuser();
auth.Open();
通常认为auth.Open();
比auth.connection.Open();
更好。这是因为,在现实生活中,你不会告诉狗腿移动,你告诉狗移动,狗告诉它自己的腿移动。