不想先用insert再用select可以吗

解决方案 »

  1.   

    select max(id) from biao
      

  2.   

    select max(id) 这个并不准备准确的,因为如果有两台电脑只差一点时间进行增加操作,得到的有可能是别人语句。
      

  3.   

    在增加语句之后跟一句这个:SELECT @@IDENTITY 
    例子:
                            String strSQL;//,myYearMonth=SetYearMonth(TableName);
                            decimal ID=0;
                            strSQL = "INSERT INTO ["+ TableName +"] (YearMonth,SubmitDate,CreateUser,SubmitUser,ReceiveUser,SubmitDepartment,SubmitSubDepartment,isSubmit,isPass,SubmitYearMonth,ReceiveUserName)  VALUES('"+ YearMonth +"','"+ DateTime.Now +"','"+ UserID +"',null,null,'"+ DepID +"',null,'0','0','1',' ');SELECT @@IDENTITY ReturnID";
                            try
                            {
                                    SqlDataReader myReader = Database.ExecuteReader(Database.connString,CommandType.Text,strSQL,null);
                                    if(myReader.Read())
                                    {
                                            ID=Convert.ToDecimal(myReader["ReturnID"]);
                                    }
                                    myReader.Close() ;
                                    Database.CloseConnection() ; 
                            }
                            catch
                            {
                                    return "0";
                            }
                            return ID.ToString();
      

  4.   

    用存储过程。可以利用参数得到output或者return的值
    下面用output----------------------------
    CREATE TABLE [test_table] (
    [id] [int] IDENTITY (1, 1) NOT NULL ,
    [username] [nvarchar] (16) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GOSET QUOTED_IDENTIFIER ON 
    GO
    SET ANSI_NULLS ON 
    GO------------------------
    create proc spReg
    (
    @username nvarchar(16),
    @id int output
    )
    as
    insert into [test_table] ([username]) values (@username)
    set @id=@@identityGO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO
    ----------------------------
            SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ae"].ConnectionString);
            SqlCommand cmd = new SqlCommand("@spReg", con);
            SqlParameter parmUsername = cmd.Parameters.Add("@username", SqlDbType.NVarChar, 16);
            SqlParameter parmID = cmd.Parameters.Add("@id", SqlDbType.Int);
            parmUsername.Value = "newUser";
            parmID.Direction = ParameterDirection.Output;
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
            int uID = (int)parmID.Value;
    //uID就得到的输出参数@id的值了
      

  5.   

    up---------------------------------------------------------------------------------------------
    腰缠70元到月入近10万
    http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=453IT工程师 毕业4年我年薪涨到30万 
    http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=51126岁青年坐拥千万域名资产 从小玩家变成CEO 
    http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=515程序员的酸甜苦辣:告别Coding 
    http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=341从月薪3500到700万(一)
    http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=170网络草根月赚3000的十种方法
    http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=517如果我是女的 我肯定不会嫁给做网站的
    http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=512