Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数据保存在Form2中,帐户ID在1列中,以查看谁拥有该数据_C#_Mysql - Fatal编程技术网

C# 将数据保存在Form2中,帐户ID在1列中,以查看谁拥有该数据

C# 将数据保存在Form2中,帐户ID在1列中,以查看谁拥有该数据,c#,mysql,C#,Mysql,理想情况下,我希望在用户登录并转到form2时,能够这样做。当他们写入新数据并按save将数据保存到mysql数据库中时,他们的帐户ID在1列中,但我不知道如何做到这一点,所以我在这里寻求帮助 表格1相关代码: MySqlConnection con = new MySqlConnection("server=SERVERIP;port=3306;database=DATABASE;uid=USERNAME;password=PASSWORD");

理想情况下,我希望在用户登录并转到form2时,能够这样做。当他们写入新数据并按save将数据保存到mysql数据库中时,他们的帐户ID在1列中,但我不知道如何做到这一点,所以我在这里寻求帮助

表格1相关代码:

            MySqlConnection con = new MySqlConnection("server=SERVERIP;port=3306;database=DATABASE;uid=USERNAME;password=PASSWORD");
            MySqlCommand cmd = new MySqlCommand("SELECT * FROM account WHERE username='" + this.user_txt.Text + "' AND pass='" + this.password_txt.Text + "';", con);
            MySqlDataReader MyReader;

            con.Open();

            MyReader = cmd.ExecuteReader();
            int count = 0;

            while (MyReader.Read())
            {
                count = count + 1;
            }
            if (count == 1)
            {
                this.Hide();
                var form1 = new Form2();
                form1.Show();
            }
        using (MySqlConnection con = new MySqlConnection("server=SERVERIP;port=3306;database=DATABASE;uid=USERNAME;password=PASSWORD"))
        {
            con.Open();

           using (MySqlCommand cmd = new MySqlCommand("insert into info(Datum,Timmar,Rast) Values(@Datum,@Timmar,@Rast)", con))
            {
               DateTime now = DateTime.Now;
               cmd.Parameters.AddWithValue("@Datum", now);
               cmd.Parameters.AddWithValue("@Timmar", textBox2.Text);
               cmd.Parameters.AddWithValue("@Rast", textBox3.Text);
               cmd.ExecuteNonQuery();
               MessageBox.Show("Sparat!");
               con.Close();
            } 
        }
表格2相关代码:

            MySqlConnection con = new MySqlConnection("server=SERVERIP;port=3306;database=DATABASE;uid=USERNAME;password=PASSWORD");
            MySqlCommand cmd = new MySqlCommand("SELECT * FROM account WHERE username='" + this.user_txt.Text + "' AND pass='" + this.password_txt.Text + "';", con);
            MySqlDataReader MyReader;

            con.Open();

            MyReader = cmd.ExecuteReader();
            int count = 0;

            while (MyReader.Read())
            {
                count = count + 1;
            }
            if (count == 1)
            {
                this.Hide();
                var form1 = new Form2();
                form1.Show();
            }
        using (MySqlConnection con = new MySqlConnection("server=SERVERIP;port=3306;database=DATABASE;uid=USERNAME;password=PASSWORD"))
        {
            con.Open();

           using (MySqlCommand cmd = new MySqlCommand("insert into info(Datum,Timmar,Rast) Values(@Datum,@Timmar,@Rast)", con))
            {
               DateTime now = DateTime.Now;
               cmd.Parameters.AddWithValue("@Datum", now);
               cmd.Parameters.AddWithValue("@Timmar", textBox2.Text);
               cmd.Parameters.AddWithValue("@Rast", textBox3.Text);
               cmd.ExecuteNonQuery();
               MessageBox.Show("Sparat!");
               con.Close();
            } 
        }
因此,我要做的是将带有form2信息的帐户id添加到数据库中。 比如:

            using (MySqlCommand cmd = new MySqlCommand("insert into info(AccountId,Datum,Timmar,Rast) Values(@AccountId,@Datum,@Timmar,@Rast)", con))
            {
               DateTime now = DateTime.Now;
               cmd.Parameters.AddWithValue("@AccountId", ACCOUNT_ID_SOURCE);
               cmd.Parameters.AddWithValue("@Datum", now);
               cmd.Parameters.AddWithValue("@Timmar", textBox2.Text);
               cmd.Parameters.AddWithValue("@Rast", textBox3.Text);
               cmd.ExecuteNonQuery();
               MessageBox.Show("Sparat!");
               con.Close();
            } 
现在我已经尝试使用它来获取用户输入,他们键入form2时没有运气

               var frm1 = new Form1(); //Form2
               string ACCOUNT_ID_SOURCE = frm1.UserText; //Form2

               public string UserText { get; private set; } //form1
               UserText = this.user_txt.Text; //form1
有没有办法解决这个问题?

这个怎么样

溶胶1。将用户ID设置为Form2的构造函数参数

readonly string ACCOUNT_ID_SOURCE;
public Form2(string aUserID)
{
     InitializeComponent();
     ACCOUNT_ID_SOURCE = aUserID;
}
溶胶2。使用户信息成为静态类

1类

public class UserInfo
{
    public static UserInfo instance = new UserInfo();
    public string LogInID { get; set; }
}
2表格1

UserInfo.instance.LogInID = "MyID";
3表格2

UserInfo.instance.LogInID; // Use this property

尝试创建一个新类

 public class UserModel
   {
    public int IdUser { get; set; }
    public string UserName { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
 }
然后在form1中的按钮单击事件中

 private void button1_Click(object sender, EventArgs e)
    {
       UserModel userModel = new UserModel();
        using (SqlConnection conn = new SqlConnection(@"Data Source=localhost; Initial   Catalog=Northwind; Integrated Security=True"))
        {
        //here your code to retrieve data from database
        userModel.FirstName = "";
        userModel.LastName = "";
        userModel.IdUser = 1;
        }           


        Form2 frm2 = new Form2(userModel);
        this.Hide();
        frm2.Show();
    }
在你的表格里

  public partial class Form2 : Form
{
    private UserModel UserObject { get; set; }
    public Form2()
    {
        InitializeComponent();
    }
    public Form2(UserModel userModel)
    {           
        InitializeComponent();
        this.UserObject = userModel;

    }

    private void btnSaveData_Click(object sender, EventArgs e)
    {
        using (MySqlCommand cmd = new MySqlCommand("insert into info(AccountId,Datum,Timmar,Rast) Values(@AccountId,@Datum,@Timmar,@Rast)", con))
        {
            DateTime now = DateTime.Now;
            cmd.Parameters.AddWithValue("@AccountId", UserObject.IdUser);
            cmd.Parameters.AddWithValue("@Datum", now);
            cmd.Parameters.AddWithValue("@Timmar", textBox2.Text);
            cmd.Parameters.AddWithValue("@Rast", textBox3.Text);
            cmd.ExecuteNonQuery();
            MessageBox.Show("Sparat!");
            con.Close();
        } 
    }
}

嗨,谢谢,但我觉得有点误会。我正在尝试获取数据库中已设置的AccountId,而不仅仅是1个帐户,而是当前登录/已登录的帐户。谢谢我以为您在form1中获得用户id,并在form2中使用它。在本例中,创建一个静态用户类,并保存从数据库获取的用户类。您可以在任何类中使用它,而无需使用数据库:D。对不起,我误解了。同样,我正在尝试获取数据库中设置的AccunrID,而不仅仅是1个id。刚刚登录的帐户的id。我的尝试完全错了。我想我必须对数据库查询做些什么。如果我错了,请纠正我。也谢谢!