【问题标题】:How to get last inserted ID in MessageBox after clicking Submit Button [duplicate]单击提交按钮后如何在MessageBox中获取最后插入的ID [重复]
【发布时间】:2014-04-10 06:48:51
【问题描述】:

我有这个代码:

private void btnPotvrdi_Click(object sender, EventArgs e)
{
     SqlConnection con = new SqlConnection("Data Source=BCKPSRVR;Initial Catalog=protokol;Integrated Security=True");
     con.Open();
     SqlCommand sc = new SqlCommand("insert into Knjiga (Datum_prijema, Predmet, Posiljalac, Adresa_posiljaoca, Primaoc, Datum_proslijeda)  values ('" + dateTimePicker1.Value.ToString("yyyy-MM-dd") + "','" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + dateTimePicker2.Value.ToString("yyyy-MM-dd") + "');", con);
     int o=sc.ExecuteNonQuery();
     MessageBox.Show(o + " :Podaci su unešeni");
     con.Close();
}

当我插入此表时,我有一个名为 Osnovni_br 的 auto_increment int 主键列。如何在 MessageBox 或 MessageBox 中获取该列 (Osnovni_br) 的最后一个值?

【问题讨论】:

  • 听说过 SQL 注入攻击吗?
  • 谨防Sql注入。您可以将SELECT SCOPE_IDENTITY(); 附加到您的查询并使用ExecuteScalar(),注意它返回一个十进制值。我无缘无故地假设MSSQL
  • @Silvermind 你能为我的代码做一个例子吗?

标签: c# auto-increment messagebox submit-button


【解决方案1】:
//read about sql injection here http://www.codeproject.com/Articles/11020/SQL-injection-attacks
using (var conn = new SqlCeConnection("Data Source=BCKPSRVR;Initial Catalog=protokol;Integrated Security=True"))
      {
          conn.Open();
          using (var cmd = new SqlCeCommand())
          {
              cmd.Connection = conn;
              cmd.CommandText = "insert into Knjiga (Datum_prijema, Predmet, Posiljalac, Adresa_posiljaoca, Primaoc, Datum_proslijeda)  values (@Datum_prijema,@Predmet,@Posiljalac,@Adresa_posiljaoca,@Primaoc,@Datum_proslijeda);SELECT CAST(scope_identity() AS int)";
              cmd.Parameters.AddWithValue("Datum_prijema", dateTimePicker1.Value.ToString("yyyy-MM-dd"));
              //.... similarly add other values
              int id = (int)cmd.ExecuteScalar();
          }
      }

【讨论】:

  • 我收到了这个错误PHOTO OF THE ERROR
  • 参数值有重复。已更正。
  • 我做了,还是一样。捕获:“',' 附近的语法不正确。”
  • 好的,我明白了。但我还想要的是,当我插入所有内容以打开一个小窗口时,会显示最后一个 ID 值。
猜你喜欢
  • 1970-01-01
  • 2016-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-29
  • 2014-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多