如何将自动增量值放在文本框中

本文关键字:文本 | 更新日期: 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 的说法(如果它在数据库中设置为自动增量,你不需要)。