如何将自动增量值放在文本框中
本文关键字:文本 | 更新日期: 2023-09-27 18:33:26
private void button1_Click(object sender, EventArgs e)
{
String path = "Data Source=LOCALHOST; Initial Catalog= system; username=root; password=''";
MySqlConnection sqlconn = new MySqlConnection(path); //communicator //constructors
MySqlCommand sqlcomm = new MySqlCommand();
sqlconn.Open();
sqlcomm.CommandType = CommandType.Text;
sqlcomm.Connection = sqlconn;
sqlcomm.CommandText = "INSERT INTO maica (Lastname) VALUES ('" + textBox2.Text + "')";
sqlcomm.ExecuteNonQuery();
sqlconn.Close();
MessageBox.Show("Record saved");
}
这是添加按钮中的代码。在phpmyadmin中,我选中了自动增量框。每当我运行表单时,我都会将 ID为空的文本框1留空,并在textBox2中输入一个名称,即姓氏。在phpmyadmin中,ID自动递增。在我单击添加按钮之前,文本框 1 的值应为 0001,然后在单击添加按钮后,文本框 1 的值应为 0002。如何将自动增量值放入文本框 1?这是在 winform c# 中。对不起,英语不好的TIA。
如果数据库具有设置了AUTO_INCREMENT
ID 列,则无需将该 ID 的值传递到 SQL 插入语句中。您可以简单地执行以下操作:
sqlcomm.CommandText = "INSERT INTO maica (Lastname) VALUES ('" + textBox2.Text + ')";
最好使用 SqlCommand
而不是字符串串联,因为它可以防止 SQL 注入,还可以处理Type
和格式问题。
这是您需要与插入一起运行的查询。
选择 LAST_INSERT_ID();
下面是一些获取 ID 的代码,首先在类中的某个位置声明一个全局字符串,如下所示
private String entryIdString;
然后
public int insertGetEntryID()
{
String sqlquery = "INSERT INTO maica (Lastname) VALUES ('" + textBox2.Text + "'); SELECT LAST_INSERT_ID();";
SqlCommand command = new SqlCommand(sqlquery, sqlconn);
try
{
sqlconn.Open();
entryIdStr = command.ExecuteScalar().ToString();
return int.Parse(entryIdStr);
}
catch (Exception ex)
{
Console.WriteLine("Exception in DBHandler", ex);
return -1;
}
finally
{
sqlconn.Close();
}
}
此方法返回一个整数,其中包含表中的最后一个 ID。现在,您只需将值设置为文本框1
textBox1.Text = "ID: " + getEntryID();
或者如果您只需要 ID
textBox1.Text = "" + getEntryID();
我也正要告诉你 Gideon 关于你插入 ID 的说法(如果它在数据库中设置为自动增量,你不需要)。