C# 值未正确传递到其他窗体
我的程序不会正确地将值从一种形式传递到另一种形式,当它将字符串传递到下一种形式时,它总是显示为null,表示 以下是我在相关领域的代码:C# 值未正确传递到其他窗体,c#,winforms,arguments,C#,Winforms,Arguments,我的程序不会正确地将值从一种形式传递到另一种形式,当它将字符串传递到下一种形式时,它总是显示为null,表示 以下是我在相关领域的代码: public partial class openingForm : Form { public string databaseselected; public openingForm() { InitializeComponent(); } public void button2_Click(obje
public partial class openingForm : Form
{
public string databaseselected;
public openingForm()
{
InitializeComponent();
}
public void button2_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "Event Control Database Files (.sdf)|*.sdf";
openFileDialog1.FilterIndex = 1;
openFileDialog1.ShowDialog();
databaseselected = openFileDialog1.FileName;
loginForm login1 = new loginForm();
this.Hide();
login1.ShowDialog();
}
private void button1_Click(object sender, EventArgs e)
{
string name = textBox1.Text.Trim();
if (!File.Exists(textBox1.Text.Trim()+".sdf"))
{
string connectionString = "DataSource= "+name+".sdf";
databaseselected = connectionString;**
SqlCeEngine en = new SqlCeEngine(connectionString);
en.CreateDatabase();
然后一些表格创建。。。。。。然后:
loginForm login = new loginForm();
login.ShowDialog();
this.Close();
到目前为止,我们有一个变量,它在开始时声明,并根据单击的按钮初始化为不同的值。这是下一张表格:
public partial class loginForm : Form
{
openingForm op = new openingForm();
public string userLoggedIn;
public loginForm()
{
InitializeComponent();
}
private void loginForm_Load(object sender, EventArgs e)
{
AddValueToLogs();
}
private string myMethod(string user, string pass)
{
string selection = "Select * from Login where userName = @userName and Hash=@hashResult";
using (var myConnection = new SqlCeConnection(**op.databaseselected**))
using (var command = new SqlCeCommand(selection, myConnection))
{
command.Parameters.Add("@username", SqlDbType.NVarChar, 20).Value = userNameBox.Text;
command.Parameters.Add("@hashResult", SqlDbType.NVarChar, 50).Value = hashResult;
有人能告诉我为什么DatabaseSelected值没有传递到loginForm吗?只需将连接字符串插入到
loginForm
:
private string _cString;
public loginForm(string cString)
{
_cString = cString;
}
随后:
new SqlCeConnection(_cString))
因此,当您启动loginForm
时,请执行以下操作:
... new loginForm(databaseselected);
对不起,我不明白,所有这些命令都去哪里??它说了一些关于班级信息的事情unavailable@tonyb,我将向您展示当前代码的修改片段。我修改了
loginForm
的构造函数,并在loginForm
中定义了一个新字段。此外,我修改了newsqlceconnection
调用,以利用loginForm
中的新字段。最后,我从openingForm
修改了对newloginform
的调用。那么,我会在其他需要特定字符串的表单上声明相同的字符串吗?