0

私のアプリである Form1 とログインページである Form2 の 2 つのフォームがあります。Form2 のユーザー名テキスト ボックス (LoginTbox) に入力された値を Form1 に渡したいです。これは私がこれまでに持っているものです。エラーは受信されませんが、何も渡されていないようです。私はコンストラクターを試しましたが、それを機能させることもできませんでした。私は何を間違っていますか?

Program.cs

static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        Form2 fLogin = new Form2();

        if (fLogin.ShowDialog() == DialogResult.OK)
            Application.Run(new Form1());
        else
            Application.Exit();
    }

Form2(ログインフォーム)

    public string strVar = string.Empty;

    public Form2()
    {
        InitializeComponent();
    }

    public void button1_Click(object sender, EventArgs e)
    {
        strVar = loginTbox.Text.ToString();           
        string _pass = textBox2.Text;

        string conStr = "Data Source=CA-INVDEV\\RISEDB01;Initial Catalog=RISEDB01;Integrated Security=True";
        string sqlcmd = "select * from accounts where Username=@Username and Password=@Password";
        using (SqlConnection conn = new SqlConnection(conStr))
        {
            conn.Open();
            SqlCommand cmd = new SqlCommand(sqlcmd, conn);
            cmd.Parameters.AddWithValue("@Username", _username);
            cmd.Parameters.AddWithValue("@Password", _pass);
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.HasRows)
            {
                MessageBox.Show("Login Successful");                                            
            }
            else
            {
                MessageBox.Show("Login Failed Invalid Credentials. Please try again");
                Application.Restart();                  
            }
        }
    }

Form1(アプリ)

private void button7_Click(object sender, EventArgs e)
    {
        if (textBox6.Text != "")
        {
            Form2 frm = new Form2();
            string strValue = frm.strVar;

            string Owner = textBox6.Text;
            string Time = DateTime.Now.ToString(@"MM\/dd\/yyyy h\:mm tt");
            string Serial = textBox4.Text;
            string conStr = "Data Source=CA-INVDEV\\RISEDB01;Initial Catalog=RISEDB01;Integrated Security=True";               
            string sqlcmd2 = "Select * from Sheet1 where Serial#=@Serial#";
            string sqlcmd = "UPDATE Sheet1 SET Owner=@Owner, Checked_In=NULL, Checked_Out=@Checked_Out, Modified_By=@Modified_By WHERE Serial#=@Serial#";
            using (SqlConnection conn = new SqlConnection(conStr))
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand(sqlcmd, conn);
                SqlCommand cmd2 = new SqlCommand(sqlcmd2, conn);
                cmd2.Parameters.AddWithValue("@Serial#", Serial);
                cmd.Parameters.AddWithValue("@Serial#", Serial);
                cmd.Parameters.AddWithValue("@Owner", Owner);
                cmd.Parameters.AddWithValue("@Checked_Out", Time);
                cmd.Parameters.AddWithValue("@Modified_By", strValue);
                SqlDataReader dr = cmd2.ExecuteReader();
                if (dr.HasRows)
                {                       
                    dr.Close();
                    cmd.ExecuteNonQuery();
                    conn.Close();
                    Form1_Load();
                }
                else
                {
                    dr.Close();
                    MessageBox.Show("Serial Does Not Exist");
                    textBox4.Clear();
                }
            }
        }
        else
        {
            MessageBox.Show("Owner was not assigned to asset. Please provide a Owner for this asset");
        }
    }
4

1 に答える 1