如何使用ASP.net获取SQL中最后插入的记录的ID

时间:2017-06-03 19:01:36

标签: c# mysql asp.net sql-server

这是我的代码

 protected void btnSubmit_Click(object sender, EventArgs e)
{
    if (!string.IsNullOrWhiteSpace(Request.QueryString["id"]))
    {
        string clientId = Context.User.Identity.GetUserId();

        if (clientId != null)
        {

            int id = Convert.ToInt32(Request.QueryString["id"]);
            customize1 customize = new customize1
            {
                client_id = clientId,
                product_id = id,
                paper_type = Labelpt.Text,
                corner = Labelpc.Text,
                shipping_type = Labelsp.Text,
                text = TextBox3.Text,

                amount = Convert.ToInt32(lbResult.Text)

            };
            customizeModel model = new customizeModel();
            Label9.Text = model.Insertcustomize(customize);
            con.Open();
            SqlCommand cmd2 = con.CreateCommand();
            cmd2.CommandType = CommandType.Text;
            cmd2.CommandText = "select top 1 * from customize1 where client_id='"+clientId+"' order by Id desc ";
            cmd2.ExecuteNonQuery();
            DataTable dt2 = new DataTable();
            SqlDataAdapter da2 = new SqlDataAdapter(cmd2);
            da2.Fill(dt2);
            foreach (DataRow dr2 in dt2.Rows)
            {
                customizeid = dr2["Id"].ToString();
            }
            con.Close();
        }
    }
}

我需要最后一行id但我的查询不生成任何值。我也检查我的查询在SSMS和查询工作正常但在asp它不生成任何数据和插入记录我使用类的概念和实体关系。 任何解决方案。

1 个答案:

答案 0 :(得分:0)

兄弟有两种方式:

一种是在插入查询后插入行位置:

SELECT SCOPE_IDENTITY()

例如:

INSERT INTO table_name (column1, column2, column3, ...)
        VALUES (value1, value2, value3, ...); 
SELECT SCOPE_IDENTITY()

它返回插入的ID。

第二种方式是此查询;

SELECT id FROM table ORDER BY id DESC LIMIT 1

如果你一直在努力解决问题,可以提出更多要求。