我正在尝试在insert
中使用studentHelperClass
方法,我试图通过点击我的表单上的按钮来激活它,我不知道如何使用文本框,所以如果有人可以提供帮助,那就太棒了。
这是我的方法:
public static void insertStudent()
{
MySqlConnection conn = connection();
conn.Open();
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = conn;
string myInsertSQL = "INSERT INTO person(personID) ";
cmd.Prepare();
myInsertSQL += "VALUES (@personID)";
cmd.Parameters.AddWithValue("@personID", "123345667788");
prevID(conn, cmd);
}
这是我的表格:
private void btnInsert_Click(object sender, EventArgs e)
{
studentHelperClass.insertStudent();
}
编辑:
private static void prevID(MySqlConnection conn, MySqlCommand cmd)
{
conn.Open();
cmd.ExecuteNonQuery();
long studentNumber = (long)cmd.LastInsertedId;
Console.Write("previous id {0} ", studentNumber);
Console.ReadLine();
conn.Close();
}
答案 0 :(得分:1)
您需要将cmd.CommandText
设为myInsertSQL
并且还需要致电cmd.ExecuteNonQuery()
string sql = "INSERT INTO person (personID) VALUES (@personID)";
using (MySqlConnection conn = connection())
using (MySqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddWithValue("@personID", personID);
conn.Open();
cmd.ExecuteNonQuery();
}
答案 1 :(得分:1)
考虑到这些信息,假设您的prevId(conn,cmd)正在调用ExecuteNonQuery,您仍然需要将cmd.CommandText设置为等于myInsertSql(正如其他答案所指出的那样)。
回答你的问题,
private void btnInsert_Click(object sender, EventArgs e)
{
studentHelperClass.insertStudent(studentIdTextBox.Text);
}
public static void insertStudent(string studentId)
{
MySqlConnection conn = connection();
conn.Open();
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = conn;
string myInsertSQL = "INSERT INTO person(personID) ";
cmd.Prepare();
myInsertSQL += "VALUES (?personID)";
cmd.CommandText = myInsertSQL;
cmd.Parameters.AddWithValue("?personID", studentId);
prevID(conn, cmd);
}
我还假设你的studentId是一个字符串。如果数据库将其作为bigint,则必须进行正确的long.TryParse()
调用。
答案 2 :(得分:0)
您必须将字符串变量'myInsertSQL'分配给cmd.CommandText,然后调用cmd.ExecuteNonQuery();
即。
cmd.CommandText = myInsertSQL;
cmd.ExecuteNonQuery();
cmd.Dispose();
始终调用'Dispose();'完成后,.net垃圾收集可以清理和管理资源。
答案 3 :(得分:0)
您根本不使用myInsertSQL字符串,只需设置它即可。您必须按cmd.CommandText = myInsertSQL
将字符串设置为命令文本,并且必须调用方法cmd.ExecuteNonQuery()
。