C# 将数据保存在Form2中,帐户ID在1列中,以查看谁拥有该数据
理想情况下,我希望在用户登录并转到form2时,能够这样做。当他们写入新数据并按save将数据保存到mysql数据库中时,他们的帐户ID在1列中,但我不知道如何做到这一点,所以我在这里寻求帮助 表格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");
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。我的尝试完全错了。我想我必须对数据库查询做些什么。如果我错了,请纠正我。也谢谢!