我有一些代码有困难。我认为变量卡在我正在调用的方法中,当我再次运行该方法时,变量不再存在。
下面是我的主要示例:
public partial class Login : Form
{
public Login()
{
InitializeComponent();
}
sqlconnect sql = new sqlconnect();
public string pass;
public string user;
public void button1_Click(object sender, EventArgs e)
{
//Username and password textboxes send to public strings
user = textBox1.Text;
pass = textBox2.Text;
try
{
//try connecting to SQL database using SQL class
sql.GetSqlConnection();
sql.myConnection.Open();
this.Hide();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
下面是 SQL 连接类:
namespace NHS_Workshop_System
{
public class sqlconnect
{
public SqlConnection myConnection { get; set; }
Settings1 set = new Settings1();
Login var = new Login();
public SqlConnection GetSqlConnection()
{
if (myConnection == null)
myConnection = new SqlConnection("user id="+(var.user)+"; password="+(var.pass)+";server="+(set.SelectServer)+";Trusted_Connection="+(set.SelectContype)+";database="+(set.SelectDataBase)+"; connection timeout="+(set.Condrop)+"");
return myConnection;
}
}
}
因此,当我尝试登录时,它可能第一次工作,但如果另一个表单尝试运行该方法,则用户名和密码丢失。我不确定如何使变量成为全局变量,以便每次运行该方法时它都会调用这些细节而不会失败。因此,它第二次在另一个表单上使用 sqlconnection 时,前消息指出用户名和密码不存在。如果是这样的话,这是一个范围界定问题,有人可以阐明我如何解决这个问题,这可能是一种获得 SQL 服务器访问权限的新方法吗?谢谢你扯掉我的头发