SQLServer数据库插入数据并同时把插入数据行的 自增列 的值取出来
string sql = string.Format(@"INSERT INTO [OA_WEB_DB].[dbo].[OA_DT_File] ([FileTypeId],[Content],[Title],[Operater],CreateTime,UpdateTime,[IsSave],[Deleted],[Memo]) values ({0},{1},{2},{3},GETDATE(),GETDATE(),{4},{5},{6});SELECT @newsId = SCOPE_IDENTITY();INSERT INTO [OA_WEB_DB].[dbo].[OA_DT_FileAcceptUser]([File_Id],[AcceptUser],[AcceptDept],[Memo]) VALUES(SCOPE_IDENTITY(),{7},{8},{9})", "@fileTypeId", "@content", "@title", "@operater", "@isSave", "@deleted", "@memo", "@acceptUser", "@acceptDept", "@memom"); SqlCommand cmd = new SqlCommand(sql); string connStr = ConfigurationSettings.AppSettings["constr"]; cmd.Connection = new SqlConnection(connStr); cmd.Parameters.Add(new SqlParameter("@fileTypeId",fle.FileTypeId)); cmd.Parameters.Add(new SqlParameter("@content",fle.Content)); cmd.Parameters.Add(new SqlParameter("@title", fle.Title)); cmd.Parameters.Add(new SqlParameter("@operater", fle.Operater)); cmd.Parameters.Add(new SqlParameter("@isSave", fle.IsSave)); cmd.Parameters.Add(new SqlParameter("@deleted", fle.Deleted)); cmd.Parameters.Add(new SqlParameter("@memo", fle.Memo)); cmd.Parameters.Add(new SqlParameter("@acceptUser", flea.AcceptUser)); cmd.Parameters.Add(new SqlParameter("@acceptDept", flea.AcceptDept)); cmd.Parameters.Add(new SqlParameter("@memom", flea.Memo)); SqlParameter parm = new SqlParameter("newsId",SqlDbType.Int); parm.Direction = ParameterDirection.Output; cmd.Parameters.Add(parm); cmd.Connection.Open(); int iRet = cmd.ExecuteNonQuery(); cmd.Connection.Close(); //string newId = Convert.ToString(Convert.ToInt32("0x" + cmd.Parameters["newsId"].Value, 16), 10); string newId = Convert.ToString(cmd.Parameters["newsId"].Value); return newId;
SELECT @newsId = SCOPE_IDENTITY()这句话就是把插入行的自增列ID取出来放到 变量 @newsId 中,并把变量输出,string newId = Convert.ToString(cmd.Parameters["newsId"].Value); 取出自增列的 id