从sql insert c#返回值

时间:2017-10-05 06:49:09

标签: c# sql winforms firebird

我正在使用c#winfroms,我需要的是立即获得我插入的值的返回值。所以我有这样的陈述:

INSERT INTO MESSAGES (MESSAGEID, SENDER, RECEIVER, TITLE, MESSAGE, STATUS) 
VALUES (
    ((SELECT MAX(MESSAGEID) FROM MESSAGES) + 1), 
    @Sender, 
    @Receiver, 
    @Title, 
    @Message, 
    0)

在此之后我需要messageid我刚插入我的代码。

以下是完整功能以及需要显示的位置:

private void send_btn_Click(object sender, EventArgs e)
{
    using (FbConnection con = new FbConnection(Properties.Resources.connectionString_EB))
    {
        con.Open();
        using (FbCommand cmd = new FbCommand("INSERT INTO MESSAGES (MESSAGEID, SENDER, RECEIVER, TITLE, MESSAGE, STATUS) VALUES (((SELECT MAX(MESSAGEID) FROM MESSAGES) + 1), @Sender, @Receiver, @Title, @Message, 0)", con))
        {
            cmd.Parameters.AddWithValue("@Sender", EB.CurrentUser.userId);
            cmd.Parameters.Add("@Receiver", FbDbType.Integer);
            cmd.Parameters.AddWithValue("@Title", title_txt.Text);
            cmd.Parameters.AddWithValue("@Message", message_rtxt.Text);

            foreach(Int_String c in receiver_clb.CheckedItems)
            {
                cmd.Parameters["@Receiver"].Value = c._int;
                cmd.ExecuteNonQuery();

                if(EB.Users.Logged(c._int))
                {
                    //Get sent message id
                }
            }

            MessageBox.Show("Message successfully sent!");
        }
        con.Close();
    }
}

0 个答案:

没有答案